diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml index 6b55ef17b..dd384c42a 100644 --- a/lms/nladmin-system/pom.xml +++ b/lms/nladmin-system/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent 2.2.10.RELEASE - + 4.0.0 @@ -14,7 +14,7 @@ 核心模块 - UTF-8 + UTF-8 UTF-8 1.8 1.16 @@ -32,7 +32,13 @@ - + + org.reflections + reflections + 0.9.10 + + + cn.hutool hutool-all @@ -58,10 +64,10 @@ - - - - + + + + cn.dev33 @@ -296,10 +302,10 @@ - - org.springframework.boot - spring-boot-starter-websocket - + + org.springframework.boot + spring-boot-starter-websocket + @@ -325,16 +331,16 @@ - - ch.ethz.ganymed - ganymed-ssh2 - build210 - - - com.jcraft - jsch - 0.1.55 - + + ch.ethz.ganymed + ganymed-ssh2 + build210 + + + com.jcraft + jsch + 0.1.55 + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 734c23226..0fe289f57 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -2,6 +2,7 @@ package org.nl.wms.ext.acs.rest; +import cn.dev33.satoken.annotation.SaCheckPermission; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -45,7 +46,16 @@ public class AcsToWmsController { @PostMapping("/apply") @Log("申请任务") @ApiOperation("申请任务") + @SaCheckPermission("menu:list") public ResponseEntity apply(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.apply(whereJson), HttpStatus.OK); } + + @PostMapping("/againApply") + @Log("二次申请任务") + @ApiOperation("二次申请任务") + @SaCheckPermission("menu:list") + public ResponseEntity againApply(@RequestBody String task_id) { + return new ResponseEntity<>(acsToWmsService.againApply(task_id), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index a82f446d2..17e953807 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -11,12 +11,21 @@ public interface AcsToWmsService { * ACS客户端--->WMS服务端 * ACS向WMS反馈任务状态 * - * @param string 条件 + * @param string ACS反馈的任务数组 * @return Map */ Map receiveTaskStatusAcs(String string); + + /** + * + * @param task_id: 任务标识 + * @return 二次申请的点位 + */ + String againApply(String task_id); + + /** * ACS客户端--->WMS服务端 * ACS向WMS反馈点位状态 @@ -41,4 +50,5 @@ public interface AcsToWmsService { * @return JSONObject */ JSONObject apply(JSONObject whereJson); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 51016f1e8..6783bae44 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1,24 +1,18 @@ package org.nl.wms.ext.acs.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.SecurityUtils; -import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.AcsToWmsService; -import org.nl.wms.pdm.service.DeviceService; -import org.nl.wms.pdm.service.dto.DeviceDto; +import org.nl.wms.log.LokiLog; +import org.nl.wms.log.LokiLogType; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wms.sch.service.PointService; import org.nl.wms.sch.service.TaskService; -import org.nl.wms.sch.service.dto.TaskDto; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,13 +28,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final TaskService taskService; /** - * task_uuid:任务标识 + * task_id:任务标识 * task_code:任务编码 * task_status:1:执行中,2:完成 ,3:acs取消 * * @param string 条件 * @returnzss */ + @LokiLog(type = LokiLogType.ACS_TO_LMS) @Override public Map receiveTaskStatusAcs(String string) { JSONArray array = JSONArray.parseArray(string); @@ -48,9 +43,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONArray errArr = new JSONArray(); for (int i = 0; i < array.size(); i++) { JSONObject row = array.getJSONObject(i); - String task_uuid = row.getString("task_id"); - TaskDto taskDto = taskService.findById(task_uuid); - String processing_class = taskDto.getHandle_class(); + String task_id = row.getString("task_id"); + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + // 任务处理类 + String processing_class = taskObj.getString("handle_class"); //1:执行中,2:完成 ,3:acs取消 String acs_task_status = row.getString("task_status"); String message = ""; @@ -82,7 +78,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("任务状态更新失败:{}", message); JSONObject json = new JSONObject(); - json.put("task_uuid", task_uuid); + json.put("task_id", task_id); json.put("message", message); errArr.add(json); @@ -92,10 +88,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("任务状态更新失败:{}", message); JSONObject json = new JSONObject(); - json.put("task_uuid", task_uuid); + json.put("task_id", task_id); json.put("message", message); errArr.add(json); - } } @@ -107,166 +102,87 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + @LokiLog(type = LokiLogType.ACS_TO_LMS) + @Override + public String againApply(String task_id) { + log.info("输入参数:" + task_id); + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonTask)) throw new BadRequestException("任务已删除或已完成!"); + + String point_code = ""; + String message = ""; + try { + Class clz = Class.forName(jsonTask.getString("handle_class")); + Object obj = clz.newInstance(); + Method m = obj.getClass().getDeclaredMethod("againApply", String.class); + point_code = (String) m.invoke(obj, task_id); + } catch (Exception e) { + e.printStackTrace(); + message = e.getMessage(); + log.info("二次申请失败:{}", message); + } + log.info("输出参数:" + point_code); + return point_code; + } + + @LokiLog(type = LokiLogType.ACS_TO_LMS) @Override public Map receivePointStatusFromAcs(Map jsonObject) { return null; } + @LokiLog(type = LokiLogType.ACS_TO_LMS) @Override public Map orderFinish(String string) { JSONObject orderJson = JSONObject.parseObject(string); String ext_order_id = orderJson.getString("ext_order_id"); // JSONArray array = JSONArray.parseArray(string); String now = DateUtil.now(); - WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + WQLObject wo = WQLObject.getWQLObject("PDM_BD_WORKORDER"); JSONObject map = new JSONObject(); - map.put("produceorder_id", ext_order_id); + map.put("workorder_id", ext_order_id); map.put("order_status", "04"); map.put("update_optid", 1111111111); map.put("device_id", ""); map.put("update_optname", "acs"); map.put("update_time", now); map.put("realproduceend_date", now); - wo.update(map, "produceorder_id = '" + ext_order_id + "'"); + wo.update(map, "workorder_id = '" + ext_order_id + "'"); JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); result.put("message", "任务状态反馈成功!"); return result; } + @LokiLog(type = LokiLogType.ACS_TO_LMS) @Override - @Transactional - public JSONObject apply(JSONObject whereJson) { + @Transactional(rollbackFor = Exception.class) + public JSONObject apply(JSONObject whereJson) { + String type = whereJson.getString("type"); + String point_code = whereJson.getString("point_code"); + String vehicle_type = whereJson.getString("vehicle_type"); + String vehicle_code = whereJson.getString("vehicle_code"); + //载具数量 + String vehicle_num = whereJson.getString("vehicle_num"); + //物料数量 + String material_num = whereJson.getString("material_num"); + + if (ObjectUtil.isEmpty(type)) throw new BadRequestException("类型不能为空"); + if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); + + /* + * 根据type判断是什么业务类型: + * 1.共挤线申请空盘 + * 2.共挤线满托入库 + * 3.油漆线申请空盘 + * 4.油漆线申请物料 + * 5.油漆线空盘入库 + * 6.一楼空盘入库 (有载具号) + * 7.油漆线->输送线(油漆线满料) + * 8.豪凯自动线下料入库 + */ + return null; } - - @Transactional - public void createEmp(JSONObject json) { - String vehicle_qty = json.getString("vehicle_qty"); - String task_id = json.getString("task_id"); - String io_type = json.getString("io_type"); - - WQLObject empTab = WQLObject.getWQLObject("st_ivt_EmptyVehicleRecord");// 空载具作业记录表 - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");// 空载具作业记录表 - - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); - - JSONObject jsonEmp = new JSONObject(); - jsonEmp.put("record_uuid", IdUtil.getSnowflake(1, 1).nextId()); - jsonEmp.put("bill_code", CodeUtil.getNewCode("KZJ_BILL_CODE")); - jsonEmp.put("io_type", io_type); - jsonEmp.put("bill_status", "20"); - jsonEmp.put("vehicle_qty", vehicle_qty); - jsonEmp.put("start_point_code", jsonTask.getString("start_point_code")); - Long start_region_id = SpringContextHolder.getBean(PointService.class).findByCode(jsonTask.getString("start_point_code")).getRegion_id(); - jsonEmp.put("start_region_id", start_region_id); - jsonEmp.put("next_point_code", jsonTask.getString("next_point_code")); - Long next_region_id = SpringContextHolder.getBean(PointService.class).findByCode(jsonTask.getString("next_point_code")).getRegion_id(); - jsonEmp.put("end_region_id", next_region_id); - jsonEmp.put("task_uuid", task_id); - jsonEmp.put("create_id", SecurityUtils.getCurrentUserId()); - jsonEmp.put("create_name", SecurityUtils.getCurrentNickName()); - jsonEmp.put("create_time", DateUtil.now()); - empTab.insert(jsonEmp); - } - - @Transactional - public JSONObject inCreateRegion(JSONObject json) { - String start_point_code = json.getString("start_point_code"); - String next_point_code = json.getString("next_point_code"); - String qty = json.getString("qty"); - Long task_id = json.getLongValue("task_id"); - String io_type = json.getString("io_type"); - - WQLObject regionTab = WQLObject.getWQLObject("ST_IVT_regionIO"); - WQLObject orderTab = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); - - - JSONObject jsonRegion = new JSONObject(); - jsonRegion.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonRegion.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE")); - jsonRegion.put("io_type", io_type); - jsonRegion.put("bill_status", "20"); - // 根据起点点位找到起点设备,根据设备找到对应工单, 根据工单找到对应物料及托盘类型 - String device_code = start_point_code.substring(0, start_point_code.indexOf("_")); - - DeviceService deviceBean = SpringContextHolder.getBean(DeviceService.class); - DeviceDto deviceDto = deviceBean.findByCode(device_code); - if (ObjectUtil.isEmpty(deviceDto)) throw new BadRequestException("此设备不存在"); - JSONObject jsonOrder = orderTab.query("device_id = '" + deviceDto.getDevice_id() + "' and order_status = '02' and is_delete = '0'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonOrder)) throw new BadRequestException("此设备未在生产中或不存在"); - - jsonRegion.put("material_id", jsonOrder.getString("material_id")); - jsonRegion.put("qty", qty); - JSONObject jsonMater = materTab.query("material_id ='" + jsonOrder.getString("material_id") + "'").uniqueResult(0); - jsonRegion.put("qty_unit_id", jsonMater.getString("base_unit_id")); - - jsonRegion.put("start_point_code", start_point_code); - Long start_region_id = SpringContextHolder.getBean(PointService.class).findByCode(start_point_code).getRegion_id(); - jsonRegion.put("start_region_id", String.valueOf(start_region_id)); - jsonRegion.put("end_point_code", next_point_code); - Long end_region_id = SpringContextHolder.getBean(PointService.class).findByCode(next_point_code).getRegion_id(); - jsonRegion.put("end_region_id", String.valueOf(end_region_id)); - - jsonRegion.put("create_mode", "02"); - jsonRegion.put("task_id", task_id); - jsonRegion.put("create_id", SecurityUtils.getCurrentUserId()); - jsonRegion.put("create_name", SecurityUtils.getCurrentNickName()); - jsonRegion.put("create_time", DateUtil.now()); - regionTab.insert(jsonRegion); - - JSONObject resuft = new JSONObject(); - resuft.put("vehicle_type", jsonOrder.getString("vehicle_type")); - resuft.put("material_id", jsonRegion.getString("material_id")); - resuft.put("create_mode", jsonRegion.getString("create_mode")); - return resuft; - } - - @Transactional - public JSONObject outCreateRegion(JSONObject json) { - String next_point_code = json.getString("next_point_code"); - String io_type = json.getString("io_type"); - - WQLObject regionTab = WQLObject.getWQLObject("ST_IVT_regionIO"); - WQLObject orderTab = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); - - JSONObject jsonRegion = new JSONObject(); - jsonRegion.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonRegion.put("bill_code", CodeUtil.getNewCode("OUT_STORE_CODE")); - jsonRegion.put("io_type", io_type); - jsonRegion.put("bill_status", "20"); - // 根据起点点位找到起点设备,根据设备找到对应工单, 根据工单找到对应物料及托盘类型 - String device_code = next_point_code.substring(0, next_point_code.indexOf("_")); - - DeviceService deviceBean = SpringContextHolder.getBean(DeviceService.class); - DeviceDto deviceDto = deviceBean.findByCode(device_code); - if (ObjectUtil.isEmpty(deviceDto)) throw new BadRequestException("此设备不存在"); - JSONObject jsonOrder = orderTab.query("device_id = '" + deviceDto.getDevice_id() + "' and order_status = '02' and is_delete = '0'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonOrder)) throw new BadRequestException("此设备未在生产中或不存在"); - - jsonRegion.put("material_id", jsonOrder.getString("material_id")); - jsonRegion.put("qty", "100"); // 暂时先按照100 - JSONObject jsonMater = materTab.query("material_id ='" + jsonOrder.getString("material_id") + "'").uniqueResult(0); - jsonRegion.put("qty_unit_id", jsonMater.getString("base_unit_id")); - - jsonRegion.put("end_point_code", next_point_code); - Long end_region_id = SpringContextHolder.getBean(PointService.class).findByCode(next_point_code).getRegion_id(); - jsonRegion.put("end_region_id", String.valueOf(end_region_id)); - - jsonRegion.put("create_mode", "02"); - jsonRegion.put("create_id", SecurityUtils.getCurrentUserId()); - jsonRegion.put("create_name", SecurityUtils.getCurrentNickName()); - jsonRegion.put("create_time", DateUtil.now()); - regionTab.insert(jsonRegion); - - // 需回显起始点位、起始区域、任务id - JSONObject resuft = new JSONObject(); - resuft.put("iostorinv_id", jsonRegion.getString("iostorinv_id")); - resuft.put("vehicle_type", jsonOrder.getString("vehicle_type")); - resuft.put("create_mode", jsonRegion.getString("create_mode")); - resuft.put("material_id", jsonOrder.getString("material_id")); - return resuft; - } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index 90ba30508..9c28278bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.wms.ext.acs.service.WmsToAcsService; -import org.nl.wms.sch.manage.AcsUtil; +import org.nl.wms.sch.AcsUtil; import org.springframework.stereotype.Service; import java.util.Map; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java b/lms/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java index 76e4693a8..466f2b1f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java @@ -12,7 +12,9 @@ public enum LokiLogType { LMS_TO_CRM("LMS请求CRM"), CRM_TO_LMS("CRM请求LMS"), LMS_TO_SAP("LMS请求SAP"), - SAP_TO_LMS("SAP请求LMS"); + SAP_TO_LMS("SAP请求LMS"), + LMS_TO_ACS("LMS请求ACS"), + ACS_TO_LMS("ACS请求LMS"); private String desc; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index cac26bea5..8cb752de4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -14,7 +14,6 @@ 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.pda.mps.service.BakingService; -import org.nl.wms.sch.manage.RegionTypeEnum; import org.nl.wms.sch.tasks.InCoolIvtTask; import org.nl.wms.sch.tasks.InHotTask; import org.nl.wms.sch.tasks.OutHotTask; @@ -101,13 +100,13 @@ public class BakingServiceImpl implements BakingService { this.createHotDtl(hotParam); // 4.下发任务 - JSONObject jsonObject = inHotTask.renotifyAcs(task_id); + /*JSONObject jsonObject = inHotTask.renotifyAcs(task_id); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); jsonTask.put("task_status", "05"); taskTab.update(jsonTask); - } + }*/ } else { /* * 冷却区入烘箱 @@ -122,7 +121,7 @@ public class BakingServiceImpl implements BakingService { String point_location = jsonCoolIvt.getString("point_location"); // 位置 String reging_id = ""; - switch (product_area) { + /*switch (product_area) { case "A": reging_id = RegionTypeEnum.A_HKZC.getId(); break; @@ -135,7 +134,7 @@ public class BakingServiceImpl implements BakingService { case "D": reging_id = RegionTypeEnum.D_HKZC.getId(); break; - } + }*/ JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("reging_id", reging_id); @@ -197,7 +196,7 @@ public class BakingServiceImpl implements BakingService { this.createHotDtl(hotParam); // 5.下发任务 - JSONObject jsonObject = inHotTask.renotifyAcs(task_id); + /* JSONObject jsonObject = inHotTask.renotifyAcs(task_id); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); @@ -207,7 +206,7 @@ public class BakingServiceImpl implements BakingService { // 更新烘烤区主表状态为执行中 JSONObject jsonHotMst = hosReMstTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); jsonHotMst.put("bill_status", "40"); - } + }*/ } } else if (StrUtil.equals(option, "2")) { // 出箱 @@ -218,7 +217,7 @@ public class BakingServiceImpl implements BakingService { // 1.查询暂存位有没有空位 String product_area = jsonHotIvt.getString("product_area"); String reging_id = ""; - switch (product_area) { + /* switch (product_area) { case "A": reging_id = RegionTypeEnum.A_HKZC.getId(); break; @@ -231,7 +230,7 @@ public class BakingServiceImpl implements BakingService { case "D": reging_id = RegionTypeEnum.D_HKZC.getId(); break; - } + }*/ JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("reging_id", reging_id); @@ -275,7 +274,7 @@ public class BakingServiceImpl implements BakingService { this.createHotDtl(hotParam); // 5.下发任务 - JSONObject jsonObject = outHotTask.renotifyAcs(task_id); + JSONObject jsonObject = outHotTask.immediateNotifyAcs(); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); @@ -339,7 +338,7 @@ public class BakingServiceImpl implements BakingService { this.createHotDtl(hotParam); // 5.下发任务 - JSONObject jsonObject = inCoolIvtTask.renotifyAcs(task_id); + JSONObject jsonObject = inCoolIvtTask.immediateNotifyAcs(); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java index 0d96c8ffb..bd0a7a229 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java @@ -18,8 +18,6 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pda.mps.service.RawFoilService; import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; -import org.nl.wms.sch.tasks.BookTwoConfirmTask; import org.nl.wms.sch.tasks.CallEmpReelTask; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -194,13 +192,13 @@ public class RawFoilServiceImpl implements RawFoilService { rawTab.update(jsonRaw); // 下发任务 - JSONObject jsonObject = callEmpReelTask.renotifyAcs(task_id); + /* JSONObject jsonObject = callEmpReelTask.renotifyAcs(task_id); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); jsonTask.put("task_status", "05"); taskTab.update(jsonTask); - } + }*/ JSONObject jo = new JSONObject(); jo.put("message", "操作成功!"); return jo; @@ -300,7 +298,7 @@ public class RawFoilServiceImpl implements RawFoilService { rawTab.update(jsonRaw); // 下发任务入库任务 - CallEmpReelTask callEmpReelTask = new CallEmpReelTask(); + /*CallEmpReelTask callEmpReelTask = new CallEmpReelTask(); JSONObject jsonObject = callEmpReelTask.renotifyAcs(task_jo.getString("task_id")); if (StrUtil.equals(jsonObject.getString("status"), "200")) { // 成功返回 更新任务状态 @@ -313,7 +311,7 @@ public class RawFoilServiceImpl implements RawFoilService { jsonRegion.put("update_optname", currentUsername); jsonRegion.put("update_time", DateUtil.now()); regionTab.update(jsonRegion); - } + }*/ JSONObject jo = new JSONObject(); jo.put("message", "操作成功!"); return jo; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsTaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java similarity index 91% rename from lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsTaskDto.java rename to lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java index cc7da0ade..fc324b5ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsTaskDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java @@ -1,8 +1,10 @@ -package org.nl.wms.sch.manage; +package org.nl.wms.sch; +import lombok.Builder; import lombok.Data; @Data +@Builder public class AcsTaskDto { //任务标识 private String task_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java similarity index 93% rename from lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsUtil.java rename to lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java index 8f78dce4b..c123e8a67 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AcsUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java @@ -1,5 +1,5 @@ -package org.nl.wms.sch.manage; +package org.nl.wms.sch; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; @@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus; public class AcsUtil { public static JSONObject notifyAcs(String api, JSONArray list) { //判断是否连接ACS系统 - String isConnect = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue(); + String isConnect = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_connect_acs").getValue(); JSONObject result = new JSONObject(); if (StrUtil.equals("0", isConnect)) { result.put("status", HttpStatus.OK.value()); @@ -25,7 +25,7 @@ public class AcsUtil { } //ACS地址:127.0.0.1:8010 - String acsUrl = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("ACS_URL").getValue(); + String acsUrl = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("acs_url").getValue(); String url = acsUrl + api; try { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/SchTaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/SchTaskDto.java new file mode 100644 index 000000000..313d52df6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/SchTaskDto.java @@ -0,0 +1,201 @@ +package org.nl.wms.sch; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Builder; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author ldjun + * @description / + * @date 2022-10-22 + **/ +@Data +@Builder +public class SchTaskDto implements Serializable { + + /** 任务标识 */ + /** + * 防止精度丢失 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long task_id; + + /** + * 任务编码 + */ + private String task_code; + /** + * 任务名称 + */ + private String task_name; + + /** + * 任务类型 + */ + private String task_type; + + /** + * 任务状态 + */ + private String task_status; + + /** + * 点位1 + */ + private String point_code1; + + /** + * 点位2 + */ + private String point_code2; + + /** + * 点位3 + */ + private String point_code3; + + /** + * 点位4 + */ + private String point_code4; + + /** + * 物料详细信息,满料请求,取工单标识,组盘时候取组盘表 + */ + private Long material_info_id; + + /** + * 物料标识 + */ + private Long material_id; + + /** + * 载具类型 + */ + private String vehicle_type; + + /** + * 载具数量 + */ + private Integer vehicle_qty; + + /** + * 载具编码 + */ + private String vehicle_code; + + /** + * 优先级 + */ + private String priority; + + /** + * 处理类 + */ + private String handle_class; + + /** + * 任务组标识 + */ + private Long task_group_id; + + /** + * 任务顺序号 + */ + private Integer sort_seq; + //物料数量 + private String material_qty; + + /** + * 任务完成类型 + */ + private String finished_type; + + /** + * acs任务类型 + */ + private String acs_task_type; + + /** + * 业务表表名 + */ + private String table_name; + + /** + * 业务表表名主键字段 + */ + private String table_fk; + + /** + * 业务表表名主键值 + */ + private Long table_fk_id; + + /** + * 备注 + */ + private String remark; + + /** + * 车号 + */ + private String car_no; + + /** + * 是否自动下发 + */ + private String is_auto_issue; + + /** + * 生成任务的请求参数 + */ + private String request_param; + + /** + * 下发任务的请求参数 + */ + private String response_param; + + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建人 + */ + private Long create_id; + + /** + * 创建人 + */ + private String create_name; + /** + * 创建方式 + */ + private String create_mode; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人 + */ + private Long update_optid; + + /** + * 修改人 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/TaskTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/TaskTypeEnum.java deleted file mode 100644 index bdada08d7..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/TaskTypeEnum.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.nl.wms.sch; - -/** - * 任务状态枚举 - */ -public enum TaskTypeEnum { - //生箔任务 - SB_QKFM("sb_qkfm", "生箔取空放满","生箔取空放满"), - SB_QK("sb_qk", "生箔取空","生箔取空"), - SB_FM("sb_qk", "生箔放满","生箔放满"), - - //分切上料任务 - FQ_SL_QMFK("fq_sl_qmfk", "分切取满放空","分切放满"), - FQ_SL_FM("fq_sl_fm", "分切放满","分切初始化"), - FQ_SL_QK("fq_sl_qk", "分切取满放空","分切放满"), - - //分切下料任务 - FQ_XL_CZ("FQ_XL_QK", "子卷出站","子卷出站4个点"), - - //烘箱 - //入烘箱:3个点 - //输送任务。 - HX_R_QMFMFM("hx_r_qmfmfm", "入烘箱","入烘箱3个点"), - HX_C_SS("hx_c_ss", "出烘箱输送线","出烘箱输送线"), - HX_C_AGV("hx_c_agv", "出烘箱AGV","出烘箱AGV"); - - - - - - private String code; - private String name; - private String description; - - public String getCode() { - return code; - } - - public String getName() { - return name; - } - - TaskTypeEnum(String code, String name,String description) { - this.code = code; - this.name = name; - this.description = description; - } - -} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index 55edd3da7..d4c3d0190 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -1,25 +1,24 @@ package org.nl.wms.sch.manage; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.AcsUtil; -import java.util.ArrayList; import java.util.List; /** * Title: AbstractAcsTask.java Description:任务抽象类 *

- * Task状态:01生成 ,02:确定起点,03、确定终点,04、起点和终点都确认,05:下发,可以下发, 06、执行中 07、完成 - * 完成方式:01自动,02:wcs删除,03、wms删除,04、发给wcs失败自动删除 + * Task状态:1生成 ,2:确定起点,3、确定终点,4、起点和终点都确认,5:下发,可以下发, 6、执行中 7、完成 + * 完成方式:1自动,2:wcs删除,3、wms删除,4、发给wcs失败自动删除 * * @author ldjun * @created 2020年6月12日 下午5:53:28 */ public abstract class AbstractAcsTask { - - /** * @discription 在如果任务无法形成会一直定时刷新判断 * @author ldjun @@ -37,29 +36,11 @@ public abstract class AbstractAcsTask { * * @return */ - public List addTask() { - //任务基础表【sch_base_task】 - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - JSONArray tasks = taskTab.query("handle_class = '" + this.getClass().getName() + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); - List arr = new ArrayList<>(); - for (int i = 0, j = tasks.size(); i < j; i++) { - JSONObject json = tasks.getJSONObject(i); - AcsTaskDto taskDto = new AcsTaskDto(); - taskDto.setTask_id(json.getString("task_id")); - taskDto.setTask_code(json.getString("task_code")); - taskDto.setTask_type("1"); - taskDto.setRoute_plan_code("normal"); - taskDto.setStart_device_code(json.getString("start_point_code")); - taskDto.setNext_device_code(json.getString("next_point_code")); - taskDto.setVehicle_code(json.getString("vehicle_code")); - arr.add(taskDto); - } - return arr; - } + public abstract List addTask(); /** * @param taskObj 代表一条任务对象 - * @param status 代表wcs任务完成状态: //1:执行中,2:完成 ,3:acs取消 + * @param status 代表wcs任务完成状态: //0:acs,取消,:执行中,2:完成 * @return * @discription wcs请求wms任务完成状态反馈接口, 比如agv从a点往b点走。生成任务的时候绑定b的物料信息,任务完成的时候,清除a的物料信息 * @author ldjun @@ -74,7 +55,9 @@ public abstract class AbstractAcsTask { * @created 2020年6月12日 下午6:01:30 */ - public abstract void findStartPoint(); + public void findStartPoint() { + + } /** * @return @@ -82,7 +65,11 @@ public abstract class AbstractAcsTask { * @author ldjun * @created 2020年6月12日 下午6:01:06 */ - public abstract void findNextPoint(); + public void findNextPoint() { + + } + + ; /** * @param form 创建任务需要的参数 @@ -97,35 +84,40 @@ public abstract class AbstractAcsTask { } - /** * @return WCS的任务集合 - * @discription 重新下发给wcs任务 + * @discription 下发给wcs任务 * @author ldjun * @created 2020年6月12日 下午5:52:28 */ - public JSONObject renotifyAcs(String task_id) { - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - JSONArray jsonArray = new JSONArray(); - JSONArray arr = taskTab.query("task_id = '" + task_id + "'").getResultJSONArray(0); - for (int i = 0, j = arr.size(); i < j; i++) { - JSONObject json = arr.getJSONObject(i); - AcsTaskDto taskDto = new AcsTaskDto(); - taskDto.setTask_id(json.getString("task_id")); - taskDto.setTask_code(json.getString("task_code")); - taskDto.setStart_device_code(json.getString("start_point_code")); - taskDto.setNext_device_code(json.getString("next_point_code")); - taskDto.setPriority("1"); - taskDto.setVehicle_code(json.getString("vehicle_code")); - taskDto.setTask_type("1"); - taskDto.setRoute_plan_code("normal"); + public JSONObject notifyAcs(String task_id) { + return AcsUtil.notifyAcs("api/wms/task", null); + } - jsonArray.add(JSONObject.parse(JSON.toJSONString(taskDto))); - - } + /** + * @return WCS的任务集合 + * @discription 再次下发给wcs任务 + * @author ldjun + * @created 2020年6月12日 下午5:52:28 + */ + public JSONObject notifyAcs(JSONArray jsonArray) { return AcsUtil.notifyAcs("api/wms/task", jsonArray); } + /** + * + */ + public JSONObject immediateNotifyAcs() { + List taskList = this.schedule(); + if (ObjectUtil.isNotEmpty(taskList)) { + + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); + return AcsUtil.notifyAcs("api/wms/task", arr); + } + return null; + + } + /** * @param task_id 任务标识 * @return @@ -136,20 +128,18 @@ public abstract class AbstractAcsTask { public abstract void forceFinish(String task_id); /** - * @param task_id - * @return - * @discription 任务搬回原起点。 - * @author ldjun - * @created 2020年6月22日 下午8:40:58 - */ - public abstract void pullBack(String task_id); - - /** - * 取消任务 + * 取消任务,货物搬回原点 * * @param task_id */ public abstract void cancel(String task_id); + /** + * @param task_id: 任务标识 + * @return 二次申请的点位 + */ + public String againApply(String task_id) { + return null; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java new file mode 100644 index 000000000..d3d4a4fba --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java @@ -0,0 +1,120 @@ +package org.nl.wms.sch.manage; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.AcsUtil; +import org.reflections.Reflections; +import org.springframework.stereotype.Component; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +@Slf4j +@Component +public class AutoCreateTask { + // 下发acs的任务集合 + private List taskList = null; + private Set> subTypes = null; + + WQLObject taskTab = null; + + @SneakyThrows + public void run() { + if (ObjectUtil.isNull(subTypes) || subTypes.isEmpty()) { + Reflections reflections = new Reflections("org.nl.wms.sch.tasks"); + subTypes = reflections.getSubTypesOf(AbstractAcsTask.class); + } + if (ObjectUtil.isNull(taskTab)) taskTab = WQLObject.getWQLObject("sch_base_task"); + taskList = new ArrayList<>(); + + this.doExecute(); + } + + + private void doExecute() { + subTypes.forEach(clz -> { + // 调用AbstractAcsTask类的每个子类的schedule()方法 + try { + Object obj = clz.newInstance(); + //Method m = obj.getClass().getDeclaredMethod("schedule"); + Method m = obj.getClass().getMethod("schedule"); + List tasks = (List) m.invoke(obj); + if (ObjectUtil.isNotEmpty(tasks)) { + taskList.addAll(tasks); + } + } catch (InvocationTargetException e) { + e.printStackTrace(); + log.info("定时器执行失败:{}", e.getTargetException().getMessage()); + } catch (Exception e) { + e.printStackTrace(); + log.info("定时器执行失败:{}", e.getMessage()); + } + + }); + if (ObjectUtil.isEmpty(taskList)) { + return; + } + + JSONArray arr = new JSONArray(); + taskList.forEach(item -> { + JSONObject param = JSONObject.parseObject(JSON.toJSONString(item)); + arr.add(param); + }); + String api = "api/wms/task"; + + log.info("下发acs任务的参数为:{}", arr.toString()); + JSONObject result = AcsUtil.notifyAcs(api, arr); + log.info("下发acs任务的返回结果为:{}", result.toString()); + + + String status = result.getString("status"); + String message = result.getString("message"); + //发送失败的任务JSON集合:task_id,message + JSONArray errArr = result.getJSONArray("errArr"); + + //任务下发以后,更新任务状态 + //成功 + if ("200".equals(status)) { + taskList.forEach(item -> { + JSONObject taskObj = new JSONObject(); + taskObj.put("task_id", item.getTask_id()); + taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode()); + taskObj.put("remark", "下发成功"); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + }); + } else {//下发失败 + taskList.forEach(item -> { + JSONObject taskObj = new JSONObject(); + taskObj.put("task_id", item.getTask_id()); + taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode()); + taskObj.put("remark", "下发失败:" + message); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + }); + } + //处理下发错误的任务 + if (ObjectUtil.isNotEmpty(errArr)) { + //处理下发失败的任务 + for (int i = 0; i < errArr.size(); i++) { + JSONObject taskObj = errArr.getJSONObject(i); + taskObj.put("remark", "下发失败:"+taskObj.getString("message")); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + } + } + + } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/RegionTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/RegionTypeEnum.java deleted file mode 100644 index 71afd33bf..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/RegionTypeEnum.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.nl.wms.sch.manage; - -/** - * 完成方式:00自动,01:手动 - */ -public enum RegionTypeEnum { - A_SB("01","A生箔区","1578627451293143040"), - B_SB("02","B生箔区",""), - C_SB("03","C生箔区",""), - D_SB("04","D生箔区",""), - A_FQ("05","A分切区","1578628922277498880"), - B_FQ("06","B分切区",""), - C_FQ("07","C分切区",""), - D_FQ("08","D分切区",""), - A_HKZC("09","A烘烤暂存区","1578657813205487616"), - B_HKZC("10","B烘烤暂存区",""), - C_HKZC("11","C烘烤暂存区",""), - D_HKZC("12","D烘烤暂存区",""); - - - private String name; - private String code; - private String id; - - private RegionTypeEnum(String code, String name, String id) { - this.code = code; - this.name = name; - this.id = id; - } - - public String getName() { - return name; - } - - public String getCode() { - return code; - } - - public String getId() { - return id; - } -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java index a432fa1b4..8afd41e40 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java @@ -1,16 +1,13 @@ package org.nl.wms.sch.manage; -/** - * Task状态:00生成 ,01:下发,02、执行中,03、完成 - */ public enum TaskStatusEnum { - CREATED("01", "生成"), - SURE_START("02", "确定起点"), - SURE_END("03", "确定终点"), - START_AND_POINT("04", "起点终点确认"), - ISSUE("05", "下发"), - EXECUTING("06", "执行中"), - FINISHED("07", "完成"); + CREATED("1", "生成"), + SURE_START("2", "确定起点"), + SURE_END("3", "确定终点"), + START_AND_POINT("4", "起点终点确认"), + ISSUE("5", "下发"), + EXECUTING("6", "执行中"), + FINISHED("7", "完成"); private String name; private String code; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java index e65458932..87afafc62 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java @@ -34,7 +34,7 @@ public class PointController { @GetMapping @Log("查询点位") @ApiOperation("查询点位") - //@PreAuthorize("@el.check('point:list')") + //@SaCheckPermission("point:list") public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(pointService.queryAll(whereJson, page), HttpStatus.OK); } @@ -42,7 +42,7 @@ public class PointController { @PostMapping @Log("新增点位") @ApiOperation("新增点位") - //@PreAuthorize("@el.check('point:add')") + //@SaCheckPermission("point:add") public ResponseEntity create(@Validated @RequestBody PointDto dto) { pointService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -51,7 +51,7 @@ public class PointController { @PutMapping @Log("修改点位") @ApiOperation("修改点位") - //@PreAuthorize("@el.check('point:edit')") + //@SaCheckPermission("point:edit") public ResponseEntity update(@Validated @RequestBody PointDto dto) { pointService.update(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -59,7 +59,7 @@ public class PointController { @Log("删除点位") @ApiOperation("删除点位") - //@PreAuthorize("@el.check('point:del')") + //@SaCheckPermission("point:del") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { pointService.deleteAll(ids); @@ -68,7 +68,7 @@ public class PointController { @PutMapping("/changeActive") @Log("修改点位启用状态") @ApiOperation("修改点位启用状态") - //@PreAuthorize("@el.check('store:edit')") + //@SaCheckPermission("store:edit") public ResponseEntity update(@RequestBody JSONObject json) { pointService.changeActive(json); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -77,23 +77,15 @@ public class PointController { @PostMapping("/getPoint") @Log("查询点位下拉框") @ApiOperation("查询点位下拉框") - //@PreAuthorize("@el.check('materialtype:list')") + //@SaCheckPermission("materialtype:list") public ResponseEntity queryPoint(@RequestBody Map whereJson) { return new ResponseEntity<>(pointService.getPoint(whereJson), HttpStatus.OK); } - @PutMapping("/syncStruct") - @Log("仓位同步") - @ApiOperation("仓位同步") - //@PreAuthorize("@el.check('store:edit')") - public ResponseEntity syncStruct() { - pointService.syncStruct(); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } @GetMapping("/selectPoint") @Log("查询点位管理") @ApiOperation("查询点位管理") - //@PreAuthorize("@el.check('Point:list')") + //@SaCheckPermission("Point:list") public ResponseEntity selectPoint(@RequestParam Map whereJson, Pageable page){ return new ResponseEntity<>(pointService.selectPoint(whereJson,page),HttpStatus.OK); } @@ -103,4 +95,20 @@ public class PointController { public ResponseEntity getRegion(){ return new ResponseEntity<>(pointService.getRegion(),HttpStatus.OK); } + + @Log("启动与禁用") + @PostMapping("/changeUsed") + @ApiOperation("启动与禁用") + public ResponseEntity changeUsedOn(@RequestBody JSONObject jsonObject) { + pointService.changeUsed(jsonObject); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("锁定与解锁") + @PostMapping("/changeLock") + @ApiOperation("锁定与解锁") + public ResponseEntity changeLock(@RequestBody JSONObject jsonObject) { + pointService.changeLock(jsonObject); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java index 4a4d9aee6..fcbf39056 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java @@ -2,7 +2,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; @@ -34,7 +33,7 @@ public class RegionController { @GetMapping @Log("查询区域管理") @ApiOperation("查询区域管理") - //@PreAuthorize("@el.check('region:list')") + //@SaCheckPermission("region:list") public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(regionService.queryAll(whereJson, page), HttpStatus.OK); } @@ -42,7 +41,7 @@ public class RegionController { @PostMapping @Log("新增区域管理") @ApiOperation("新增区域管理") - //@PreAuthorize("@el.check('region:add')") + //@SaCheckPermission("region:add") public ResponseEntity create(@Validated @RequestBody RegionDto dto) { regionService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -51,7 +50,7 @@ public class RegionController { @PutMapping @Log("修改区域管理") @ApiOperation("修改区域管理") - //@PreAuthorize("@el.check('region:edit')") + //@SaCheckPermission("region:edit") public ResponseEntity update(@Validated @RequestBody RegionDto dto) { regionService.update(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -59,21 +58,27 @@ public class RegionController { @Log("删除区域管理") @ApiOperation("删除区域管理") - //@PreAuthorize("@el.check('region:del')") + //@SaCheckPermission("region:del") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { regionService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } - @PutMapping("/changeActive") - @Log("修改点位启用状态") - @ApiOperation("修改点位启用状态") - //@PreAuthorize("@el.check('store:edit')") - public ResponseEntity update(@RequestBody JSONObject json) { - regionService.changeActive(json); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + @PostMapping("/getPointStatusSelectById") + @Log("获取点位状态下拉框") + @ApiOperation("获取点位状态下拉框") + //@SaCheckPermission("region:add") + public ResponseEntity getPointStatusSelectById(@RequestBody Long region_id) { + return new ResponseEntity<>(regionService.getPointStatusSelectById(region_id), HttpStatus.CREATED); } + @PostMapping("/getPointTypeSelectById") + @Log("获取点位类型下拉框") + @ApiOperation("获取点位类型下拉框") + //@SaCheckPermission("region:add") + public ResponseEntity getPointTypeSelectById(@RequestBody Long region_id) { + return new ResponseEntity<>(regionService.getPointTypeSelectById(region_id), HttpStatus.CREATED); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java index 82956bf44..4f9ecc846 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/TaskController.java @@ -12,12 +12,9 @@ import org.nl.modules.logging.annotation.Log; import org.nl.wms.sch.manage.FinishTypeEnum; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.TaskService; -import org.nl.wms.sch.service.dto.TaskDto; -import org.nl.wms.sch.TaskTypeEnum; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -38,38 +35,11 @@ public class TaskController { @GetMapping @Log("查询任务") @ApiOperation("查询任务") - //@PreAuthorize("@el.check('task:list')") + //@SaCheckPermission("task:list") public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(taskService.queryAll(whereJson, page), HttpStatus.OK); } - @PostMapping - @Log("新增任务") - @ApiOperation("新增任务") - //@PreAuthorize("@el.check('task:add')") - public ResponseEntity create(@Validated @RequestBody TaskDto dto) { - taskService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改任务") - @ApiOperation("修改任务") - //@PreAuthorize("@el.check('task:edit')") - public ResponseEntity update(@Validated @RequestBody TaskDto dto) { - taskService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除任务") - @ApiOperation("删除任务") - //@PreAuthorize("@el.check('task:del')") - @DeleteMapping - public ResponseEntity delete(@RequestBody String[] ids) { - taskService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - @GetMapping("/taskStatus") @Log("获取任务状态列表") @ApiOperation("获取任务状态列表") @@ -90,21 +60,6 @@ public class TaskController { return new ResponseEntity<>(arr, HttpStatus.OK); } - @GetMapping("/taskType") - @Log("获取任务类型列表") - @ApiOperation("获取任务类型列表") - public ResponseEntity getTaskType() { - TaskTypeEnum[] values = TaskTypeEnum.values(); - JSONArray arr = new JSONArray(); - for (TaskTypeEnum value : values) { - JSONObject json = new JSONObject(); - json.put("code", value.getCode()); - json.put("name", value.getName()); - arr.add(json); - } - return new ResponseEntity<>(arr, HttpStatus.OK); - } - @GetMapping("/finishType") @Log("获取任务类型列表") @ApiOperation("获取任务类型列表") @@ -123,7 +78,7 @@ public class TaskController { @PutMapping("/operation") @Log("任务操作") @ApiOperation("任务操作") - //@PreAuthorize("@el.check('task:edit')") + //@SaCheckPermission("task:edit") public ResponseEntity update(@RequestBody Map map) { taskService.operation(map); return new ResponseEntity<>(HttpStatus.NO_CONTENT); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/sch.xls b/lms/nladmin-system/src/main/java/org/nl/wms/sch/sch.xls similarity index 65% rename from lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/sch.xls rename to lms/nladmin-system/src/main/java/org/nl/wms/sch/sch.xls index 772587185..9c348dbec 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/sch.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/sch/sch.xls differ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java index eb9280f74..d4eec704c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java @@ -73,7 +73,6 @@ public interface PointService { JSONArray getPoint(Map wherJson); - void syncStruct(); /** * * 获取点位 @@ -85,4 +84,16 @@ public interface PointService { * 获取区域 */ JSONArray getRegion(); + + /** + * 改变启用状态 + * @param jsonObject + */ + void changeUsed(JSONObject jsonObject); + + /** + * 改变锁定类型 + * @param jsonObject + */ + void changeLock(JSONObject jsonObject); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java index 3c9de3014..7b730da23 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java @@ -1,7 +1,7 @@ package org.nl.wms.sch.service; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONArray; import org.nl.wms.sch.service.dto.RegionDto; import org.springframework.data.domain.Pageable; @@ -70,5 +70,17 @@ public interface RegionService { */ void deleteAll(Long[] ids); - void changeActive(JSONObject json); + /** + * 获取点位状态下拉框 + * @param region_id + * @return + */ + JSONArray getPointStatusSelectById(Long region_id); + + /** + * 获取点位类型下拉框 + * @param region_id + * @return + */ + JSONArray getPointTypeSelectById(Long region_id); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/TaskService.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/TaskService.java index 941189529..222cbc787 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/TaskService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/TaskService.java @@ -1,10 +1,8 @@ package org.nl.wms.sch.service; -import org.nl.wms.sch.service.dto.TaskDto; import org.springframework.data.domain.Pageable; -import java.util.List; import java.util.Map; /** @@ -23,65 +21,11 @@ public interface TaskService { */ Map queryAll(Map whereJson, Pageable page); - /** - * 查询所有数据不分页 - * - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); - - /** - * 根据ID查询 - * - * @param task_id - * @return Task - */ - TaskDto findById(String task_id); - - /** - * 根据ID查询 - * - * @param taskdtl_id ID - * @return Task - */ - TaskDto findByDtlId(String taskdtl_id); - - /** - * 根据编码查询 - * - * @param code code - * @return Task - */ - TaskDto findByCode(String code); - - - /** - * 创建 - * - * @param dto / - */ - void create(TaskDto dto); - - /** - * 编辑 - * - * @param dto / - */ - void update(TaskDto dto); - - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(String[] ids); - /** * 任务操作 * * @param param */ void operation(Map param); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java index 70e14417f..c9800a13e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java @@ -5,132 +5,111 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** - * @author ldjun * @description / - * @date 2021-12-07 + * @author 1 + * @date 2022-10-19 **/ @Data public class PointDto implements Serializable { /** 点位标识 */ - /** - * 防止精度丢失 - */ - @JsonSerialize(using = ToStringSerializer.class) + /** 防止精度丢失 */ + @JsonSerialize(using= ToStringSerializer.class) private Long point_id; - /** - * 点位编码 - */ + /** 点位编码 */ private String point_code; - /** - * 点位名称 - */ + /** 点位名称 */ private String point_name; - /** - * 所属区域 - */ + /** 所属区域 */ private Long region_id; - /** - * 点位类型 - */ + /** 区域编码 */ + private String region_code; + + /** 区域名称 */ + private String region_name; + + /** 点位类型 */ private String point_type; - /** - * 点位状态 - */ + /** 点位状态 */ private String point_status; - /** - * 锁定类型 - */ + /** 锁定类型 */ private String lock_type; - /** - * 载具编码 - */ - private String vehicle_code; + /** 设备编码 */ + private String device_code; - /** - * 载具数量 - */ - private Integer vehicle_qty; + /** MES设备编码 */ + private String mes_device_code; - /** - * 载具类型 - */ + /** 物料标识 */ + private Long material_id; + + /** 允许的载具类型 */ + private String can_vehicle_type; + + /** 载具类型 */ private String vehicle_type; - /** - * 是否专机 - */ - private String is_host; + /** 载具编码 */ + private String vehicle_code; - /** - * 来源标识 - */ - private Long source_id; + /** 载具数量 */ + private BigDecimal vehicle_qty; - /** - * 备注 - */ + /** 块 */ + private BigDecimal block_num; + + /** 排 */ + private BigDecimal row_num; + + /** 列 */ + private BigDecimal col_num; + + /** 层 */ + private BigDecimal layer_num; + + /** 点位组编码 */ + private String point_group_code; + + /** 是否建工单 */ + private String is_have_workder; + + /** 备注 */ private String remark; - /** - * 是否启用 - */ + /** 来源标识 */ + private Long source_id; + + /** 是否启用 */ private String is_used; - /** - * 是否删除 - */ + /** 是否删除 */ private String is_delete; - /** - * 创建人 - */ + /** 创建人 */ private Long create_id; - /** - * 创建人姓名 - */ + /** 创建人 */ private String create_name; - /** - * 创建时间 - */ + /** 创建时间 */ private String create_time; - /** - * 修改人 - */ + /** 修改人 */ private Long update_optid; - /** - * 修改人姓名 - */ + /** 修改人 */ private String update_optname; - /** - * 修改时间 - */ + /** 修改时间 */ private String update_time; - - /** - * 设备点位类型 - */ - private String device_point_type; - /** - * 生产区域 - */ - private String product_area; - /** - * 点位位置 - */ - private String point_location; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/RegionDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/RegionDto.java index 29aefe781..1c169fc0d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/RegionDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/RegionDto.java @@ -7,71 +7,48 @@ import lombok.Data; import java.io.Serializable; /** - * @author Liuxy - * @description / - * @date 2022-08-11 - **/ +* @description / +* @author Liuxy +* @date 2022-08-11 +**/ @Data public class RegionDto implements Serializable { /** 区域标识 */ - /** - * 防止精度丢失 - */ - @JsonSerialize(using = ToStringSerializer.class) + /** 防止精度丢失 */ + @JsonSerialize(using= ToStringSerializer.class) private Long region_id; - /** - * 区域编码 - */ + /** 区域编码 */ private String region_code; - /** - * 区域名称 - */ + /** 区域名称 */ private String region_name; - /** - * 备注 - */ + /** 点位类型备注 */ + private String point_type_explain; + + /** 点位状态备注 */ + private String point_status_explain; + + /** 备注 */ private String remark; - /** - * 是否启用 - */ - private String is_used; - - /** - * 创建人 - */ + /** 创建人 */ private Long create_id; - /** - * 创建人姓名 - */ + /** 创建人姓名 */ private String create_name; - /** - * 创建时间 - */ + /** 创建时间 */ private String create_time; - /** - * 修改人 - */ + /** 修改人 */ private Long update_optid; - /** - * 修改人姓名 - */ + /** 修改人姓名 */ private String update_optname; - /** - * 修改时间 - */ + /** 修改时间 */ private String update_time; - /** - * 生产区域 - */ - private String product_area; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskDto.java index de4d68b62..355e8a0da 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskDto.java @@ -5,44 +5,90 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** * @description / * @author ldjun - * @date 2021-12-23 + * @date 2022-10-19 **/ @Data public class TaskDto implements Serializable { + + /** 任务标识 */ + /** 防止精度丢失 */ + @JsonSerialize(using= ToStringSerializer.class) + private Long task_id; + /** 任务编码 */ private String task_code; /** 任务类型 */ private String task_type; - /** 任务明细类型 */ - private String taskdtl_type; - - /** 指令状态 */ + /** 任务状态 */ private String task_status; - /** 起始点位 */ - private String start_point_code; + /** 点位1 */ + private String point_code1; - /** 下一点位 */ - private String next_point_code; + /** 点位2 */ + private String point_code2; + + /** 点位3 */ + private String point_code3; + + /** 点位4 */ + private String point_code4; + + /** 物料标识 */ + private Long material_id; + + /** 载具类型 */ + private String vehicle_type; + + /** 载具数量 */ + private BigDecimal vehicle_qty; /** 载具编码 */ private String vehicle_code; + /** 优先级 */ + private String priority; + /** 处理类 */ private String handle_class; + /** 任务组标识 */ + private Long task_group_id; + + /** 任务顺序号 */ + private BigDecimal sort_seq; + /** 任务完成类型 */ private String finished_type; + /** acs任务类型 */ + private String acs_task_type; + + /** 业务表表名 */ + private String table_name; + + /** 业务表表名主键字段 */ + private String table_fk; + + /** 业务表表名主键值 */ + private Long table_fk_id; + /** 备注 */ private String remark; + /** 备注1 */ + private String remark2; + + /** 备注2 */ + private String remark3; + /** 是否删除 */ private String is_delete; @@ -51,30 +97,4 @@ public class TaskDto implements Serializable { /** 修改时间 */ private String update_time; - - /** 任务明细标识 */ - /** 防止精度丢失 */ - @JsonSerialize(using= ToStringSerializer.class) - private Long taskdtl_id; - - /** 任务标识 */ - private Long task_id; - - /** 物料编码 */ - private String material_code; - - /** 车号 */ - private String car_no; - - /** 创建人 */ - private Long create_id; - - /** 创建人姓名 */ - private String create_name; - - /** 修改人 */ - private Long update_optid; - - /** 修改人姓名 */ - private String update_optname; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskQueryDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskQueryDto.java index b274de8f9..24911c781 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskQueryDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/TaskQueryDto.java @@ -1,7 +1,5 @@ package org.nl.wms.sch.service.dto; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.io.Serializable; @@ -23,10 +21,6 @@ public class TaskQueryDto implements Serializable { */ private String task_type; - /** - * 任务明细类型 - */ - private String taskdtl_type; /** * 指令状态 @@ -36,12 +30,12 @@ public class TaskQueryDto implements Serializable { /** * 起始点位 */ - private String start_point_code; + private String point_code1; /** * 下一点位 */ - private String next_point_code; + private String point_code2; /** * 载具编码 @@ -69,12 +63,6 @@ public class TaskQueryDto implements Serializable { */ private String update_time; - /** 任务明细标识 */ - /** - * 防止精度丢失 - */ - @JsonSerialize(using = ToStringSerializer.class) - private Long taskdtl_id; /** * 任务标识 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index d91550eec..fe130b5a2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -12,12 +12,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; -import org.nl.wms.sch.manage.RegionTypeEnum; -import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.sch.service.PointService; +import org.nl.wms.sch.service.RegionService; +import org.nl.wms.sch.service.dto.PointDto; +import org.nl.wms.sch.service.dto.RegionDto; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,6 +36,9 @@ import java.util.Map; @RequiredArgsConstructor @Slf4j public class PointServiceImpl implements PointService { + + private final RegionService regionService; + @Override public Map queryAll(Map whereJson, Pageable page) { HashMap map = new HashMap(); @@ -47,6 +51,39 @@ public class PointServiceImpl implements PointService { map.put("point_type", whereJson.get("point_type")); map.put("name", whereJson.get("name")); JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc"); + JSONArray content = json.getJSONArray("content"); + JSONArray res = new JSONArray(); + for (int i = 0; i < content.size(); i++) { + JSONObject object = content.getJSONObject(i); + Long region_id = object.getLong("region_id"); + String point_status = object.getString("point_status"); + String point_type = object.getString("point_type"); + RegionDto regionDto = regionService.findById(region_id); + String point_status_explain = regionDto.getPoint_status_explain(); + String point_type_explain = regionDto.getPoint_type_explain(); + // 获取点位状态名称 + if (!ObjectUtil.isEmpty(point_status)) { + JSONObject statusArr = new JSONObject(); + String[] split = point_status_explain.split(","); + for ( int j = 0; j < split.length; j++) { + String[] status = split[j].split("-"); + statusArr.put(status[0], status[1]); + } + object.put("point_status_name", statusArr.getString(point_status)); + } + // 获取点位类型 + if (!ObjectUtil.isEmpty(point_type)) { + JSONObject typeArr = new JSONObject(); + String[] split = point_type_explain.split(","); + for ( int j = 0; j < split.length; j++) { + String[] types = split[j].split("-"); + typeArr.put(types[0], types[1]); + } + object.put("point_status_name", typeArr.getString(point_type)); + } + res.add(object); + } + json.put("content", res); return json; } @@ -92,6 +129,9 @@ public class PointServiceImpl implements PointService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); + RegionDto regionDto = regionService.findById(dto.getRegion_id()); + dto.setRegion_code(regionDto.getRegion_code()); + dto.setRegion_name(regionDto.getRegion_name()); dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); @@ -100,10 +140,6 @@ public class PointServiceImpl implements PointService { dto.setUpdate_time(now); dto.setCreate_time(now); - Long region_id = dto.getRegion_id(); - JSONObject region_jo = WQLObject.getWQLObject("sch_base_region").query("region_id = '"+region_id+"'").uniqueResult(0); - dto.setProduct_area(region_jo.getString("product_area")); - WQLObject wo = WQLObject.getWQLObject("sch_base_point"); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); wo.insert(json); @@ -117,6 +153,14 @@ public class PointServiceImpl implements PointService { throw new BadRequestException("被删除或无权限,操作失败!"); } + String pointStatus = dto.getPoint_status(); + if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals("1")) { + entity.setMaterial_id(null); + entity.setVehicle_type(null); + entity.setVehicle_code(null); + entity.setVehicle_qty(null); + } + Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); @@ -195,42 +239,10 @@ public class PointServiceImpl implements PointService { @Override public JSONArray getPoint(Map wherJson) { String area_type = (String) wherJson.get("area_type"); - JSONArray point_rows = WQLObject.getWQLObject("sch_base_point").query("region_id IN (" + area_type + ") AND is_used = '1' AND is_delete = '0' order by point_code").getResultJSONArray(0); + JSONArray point_rows = WQLObject.getWQLObject("sch_base_point").query("area_type IN (" + area_type + ") AND is_used = '1' AND is_delete = '0' order by point_code").getResultJSONArray(0); return point_rows; } - @Override - @Transactional(rollbackFor = Exception.class) - public void syncStruct() { - WQLObject.getWQLObject("sch_base_point").delete(" point_type = '01'"); - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - JSONObject map = new JSONObject(); - map.put("flag", "2"); - JSONArray arrStruct = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).process().getResultJSONArray(0); - WQLObject wo = WQLObject.getWQLObject("sch_base_point"); - for (int i = 0; i < arrStruct.size(); i++) { - JSONObject json = arrStruct.getJSONObject(i); - JSONObject structMap = new JSONObject(); - structMap.put("point_id", IdUtil.getSnowflake(1,1).nextId()); - structMap.put("point_code", json.getString("struct_code")); - structMap.put("point_name", json.getString("struct_name")); - structMap.put("region_id", RegionTypeEnum.A_HKZC.getId()); - structMap.put("source_id", json.getString("struct_id")); - structMap.put("point_type", "01"); - structMap.put("is_host", "0"); - structMap.put("is_used", json.getString("is_used")); - structMap.put("create_id", currentUserId); - structMap.put("create_name", nickName); - structMap.put("create_time", now); - structMap.put("update_optid", currentUserId); - structMap.put("update_optname", nickName); - structMap.put("update_time", now); - wo.insert(structMap); - } - } - @Override public Map selectPoint(Map whereJson, Pageable page) { String search = MapUtil.getStr(whereJson, "search"); @@ -249,10 +261,46 @@ public class PointServiceImpl implements PointService { @Override public JSONArray getRegion() { - JSONArray resultJSONArray = WQLObject.getWQLObject("SCH_BASE_Region").query("is_used = '1'").getResultJSONArray(0); + JSONArray resultJSONArray = WQLObject.getWQLObject("SCH_BASE_Region").query().getResultJSONArray(0); return resultJSONArray; } + /** + * 改变启用状态 + * + * @param jsonObject + */ + @Override + public void changeUsed(JSONObject jsonObject) { + WQLObject wo = WQLObject.getWQLObject("sch_base_Point"); + JSONArray data = jsonObject.getJSONArray("data"); + String used = jsonObject.getString("used"); + for ( int i = 0; i < data.size(); i++ ) { + JSONObject object = data.getJSONObject(i); + if (used.equals("1")) object.put("is_used", 1); + else object.put("is_used", 0); + wo.update(object); + } + } + + /** + * 改变锁定类型 + * + * @param jsonObject + */ + @Override + public void changeLock(JSONObject jsonObject) { + WQLObject wo = WQLObject.getWQLObject("sch_base_Point"); + JSONArray data = jsonObject.getJSONArray("data"); + String lock = jsonObject.getString("lock_type"); + for ( int i = 0; i < data.size(); i++ ) { + JSONObject object = data.getJSONObject(i); + if (lock.equals("1")) object.put("lock_type", 1); + else object.put("lock_type", 2); + wo.update(object); + } + } + //根据重量返回最大的 级数 public String getLoadSeriesByqty(Double qty) { JSONArray dictArr = WQLObject.getWQLObject("sys_dict_detail").query("dict_id ='108'", "label").getResultJSONArray(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java index 8f96f5103..786f964ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -14,11 +13,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; -import org.nl.wms.sch.service.RegionService; -import org.nl.wms.sch.service.dto.RegionDto; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.sch.service.RegionService; +import org.nl.wms.sch.service.dto.RegionDto; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -70,7 +69,7 @@ public class RegionServiceImpl implements RegionService { @Override public RegionDto findByCode(String code) { WQLObject wo = WQLObject.getWQLObject("sch_base_region"); - JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); + JSONObject json = wo.query("region_code ='" + code + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(json)) { return json.toJavaObject(RegionDto.class); } @@ -130,21 +129,54 @@ public class RegionServiceImpl implements RegionService { } } + /** + * 获取点位状态下拉框 + * + * @param region_id + * @return + */ @Override - public void changeActive(JSONObject json) { - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - String is_used = "1"; - if (StrUtil.equals("1", json.getString("is_used"))) { - is_used = "0"; + public JSONArray getPointStatusSelectById(Long region_id) { + /** + * label,value + */ + JSONArray res = new JSONArray(); + String point_status_explain = findById(region_id).getPoint_status_explain(); + if (ObjectUtil.isEmpty(point_status_explain)) return res; + String[] explain = point_status_explain.split(","); + for (int i = 0; i < explain.length; i++) { + String[] status = explain[i].split("-"); + JSONObject point_status = new JSONObject(); + point_status.put("label", status[1]); + point_status.put("value", status[0]); + res.add(point_status); } - json.put("is_used", is_used); - json.put("update_optid", currentUserId); - json.put("update_optname", nickName); - json.put("update_time", now); - WQLObject.getWQLObject("sch_base_region").update(json); + return res; + } + + /** + * 获取点位类型下拉框 + * + * @param region_id + * @return + */ + @Override + public JSONArray getPointTypeSelectById(Long region_id) { + /** + * label,value + */ + JSONArray res = new JSONArray(); + String point_type_explain = findById(region_id).getPoint_type_explain(); + if (ObjectUtil.isEmpty(point_type_explain)) return res; + String[] explain = point_type_explain.split(","); + for (int i = 0; i < explain.length; i++) { + String[] types = explain[i].split("-"); + JSONObject point_type = new JSONObject(); + point_type.put("label", types[1]); + point_type.put("value", types[0]); + res.add(point_type); + } + return res; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index ca1ead55c..986265641 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -2,9 +2,7 @@ package org.nl.wms.sch.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -13,20 +11,20 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.SecurityUtils; -import org.nl.wms.sch.service.TaskService; -import org.nl.wms.sch.service.dto.TaskDto; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.basedata.master.service.ClassstandardService; +import org.nl.wms.basedata.master.service.dto.ClassstandardDto; +import org.nl.wms.sch.service.PointService; +import org.nl.wms.sch.service.RegionService; +import org.nl.wms.sch.service.TaskService; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -39,6 +37,10 @@ import java.util.Map; @Slf4j public class TaskServiceImpl implements TaskService { + private final ClassstandardService classstandardService; + private final RegionService regionService; + private final PointService pointService; + @Override public Map queryAll(Map form, Pageable page) { @@ -60,20 +62,18 @@ public class TaskServiceImpl implements TaskService { if (StrUtil.isNotEmpty(whereJson.getString("task_code"))) { map.put("task_code", "%" + whereJson.getString("task_code") + "%"); } - if (StrUtil.isNotEmpty(whereJson.getString("start_point_code"))) { - map.put("start_point_code", "%" + whereJson.getString("start_point_code") + "%"); + if (StrUtil.isNotEmpty(whereJson.getString("point_code1"))) { + map.put("point_code1", "%" + whereJson.getString("point_code1") + "%"); } - if (StrUtil.isNotEmpty(whereJson.getString("next_point_code"))) { - map.put("next_point_code", "%" + whereJson.getString("next_point_code") + "%"); + if (StrUtil.isNotEmpty(whereJson.getString("point_code2"))) { + map.put("point_code2", "%" + whereJson.getString("point_code2") + "%"); } if (StrUtil.isNotEmpty(whereJson.getString("vehicle_code"))) { map.put("vehicle_code", "%" + whereJson.getString("vehicle_code") + "%"); } if (StrUtil.isNotEmpty(whereJson.getString("task_type"))) { - map.put("task_type", whereJson.getString("task_type")); - } - if (StrUtil.isNotEmpty(whereJson.getString("taskdtl_type"))) { - map.put("taskdtl_type", whereJson.getString("taskdtl_type")); + ClassstandardDto task_type = classstandardService.findById(whereJson.getString("task_type")); + map.put("task_type", task_type.getClass_code()); } if (StrUtil.isNotEmpty(whereJson.getString("finishTypeList"))) { map.put("finishTypeList", whereJson.getString("finishTypeList")); @@ -85,99 +85,42 @@ public class TaskServiceImpl implements TaskService { map.put("end_time", whereJson.getString("end_time")); } JSONObject json = WQL.getWO("QSCH_TASK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "task.update_time desc"); - return json; - } + JSONArray content = json.getJSONArray("content"); + JSONArray res = new JSONArray(); - @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONArray arr = wo.query().getResultJSONArray(0); - List list = arr.toJavaList(TaskDto.class); - return list; - } + //点位基础表【SCH_BASE_Point】 + WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); + for (int i = 0; i < content.size(); i++) { + JSONObject taskObj = content.getJSONObject(i); + String point_code1 = taskObj.getString("point_code1"); + if (ObjectUtil.isNotEmpty(point_code1)) { + JSONObject point1 = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); + taskObj.put("point1_region_name", point1.getString("region_name")); + } - @Override - public TaskDto findById(String task_id) { - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONObject json = wo.query("task_id = '" + task_id + "'").uniqueResult(0); - final TaskDto obj = json.toJavaObject(TaskDto.class); - return obj; - } - - @Override - public TaskDto findByDtlId(String task_id) { - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONObject json = wo.query("task_id = '" + task_id + "'").uniqueResult(0); - final TaskDto obj = json.toJavaObject(TaskDto.class); - return obj; - } - - @Override - public TaskDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONObject json = wo.query("task_code ='" + code + "'").uniqueResult(0); - final TaskDto obj = json.toJavaObject(TaskDto.class); - return obj; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(TaskDto dto) { - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - - dto.setTaskdtl_id(IdUtil.getSnowflake(1, 1).nextId()); - dto.setTask_id(dto.getTaskdtl_id()); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_optid(currentUserId); - dto.setUpdate_optname(nickName); - dto.setUpdate_time(now); - dto.setCreate_time(now); - - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(TaskDto dto) { - TaskDto entity = this.findById(dto.getTask_id() + ""); - if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); - - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - String now = DateUtil.now(); - dto.setUpdate_time(now); - dto.setUpdate_optid(currentUserId); - dto.setUpdate_optname(nickName); - - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(String[] ids) { - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - for (String taskdtl_id : ids) { - wo.delete("taskdtl_id = '" + taskdtl_id + "'"); + String point_code2 = taskObj.getString("point_code2"); + if (ObjectUtil.isNotEmpty(point_code2)) { + JSONObject point2 = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0); + taskObj.put("point2_region_name", point2.getString("region_name")); + } + String point_code3 = taskObj.getString("point_code3"); + if (ObjectUtil.isNotEmpty(point_code3)) { + JSONObject point3 = pointTab.query("point_code = '" + point_code3 + "'").uniqueResult(0); + taskObj.put("point3_region_name", point3.getString("region_name")); + } + res.add(taskObj); } + json.put("content", res); + return json; } @Override public void operation(Map map) { String task_id = MapUtil.getStr(map, "task_id"); String method_name = MapUtil.getStr(map, "method_name"); - TaskDto dto = this.findByDtlId(task_id); + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); // 任务处理类 - String processing_class = dto.getHandle_class(); + String processing_class = taskObj.getString("handle_class"); String message = ""; // 根据任务类型获取对应的任务操作类 try { @@ -193,7 +136,7 @@ public class TaskServiceImpl implements TaskService { for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); JSONObject param = new JSONObject(); - param.put("taskdtl_id", json.getString("taskdtl_id")); + param.put("task_id", json.getString("task_id")); param.put("remark", json.getString("message")); wo.update(param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql index 28f63d944..b07979978 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql @@ -48,42 +48,12 @@ IF 输入.flag = "1" PAGEQUERY SELECT - point.point_id, - point.point_code, - point.point_name, - point.region_id, - region.region_name, - point.point_type, - point.point_status, - point.lock_type, - d1.label as point_type_name, - d4.label as point_status_name, - d3.label as lock_type_name, - point.vehicle_code, - point.source_id, - point.remark, - point.taskdtl_type, - point.taskdtl_id, - point.task_code, - point.inv_type, - point.inv_id, - point.inv_code, - point.is_used, - point.is_delete, - point.vehicle_qty, - point.create_name, - point.create_time, - point.update_optname, - point.update_time, - point.vehicle_type, - point.is_host, - point.device_point_type + point.*, + d3.label as lock_type_name FROM sch_base_point point LEFT JOIN SCH_BASE_Region region ON point.region_id = region.region_id - LEFT JOIN sys_dict_detail d1 ON point.point_type = d1.value and d1.name='sch_point_type' LEFT JOIN sys_dict_detail d3 ON point.lock_type = d3.value and d3.name='d_lock_type' - LEFT JOIN sys_dict_detail d4 ON point.point_status = d4.value and d4.name='sch_point_status' WHERE point.is_delete = '0' OPTION 输入.region_id <> "" @@ -117,9 +87,11 @@ IF 输入.flag = "2" QUERY SELECT - struct.* + struct.*,region.region_id FROM ST_IVT_StructAttr struct + left join + SCH_BASE_Region region on struct.region_id = region.region_id WHERE struct.is_delete = '0' ENDSELECT diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql index 5e3f8b0b1..729b8ca4d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql @@ -17,14 +17,13 @@ 输入.task_status TYPEAS s_string 输入.finished_type TYPEAS s_string 输入.task_type TYPEAS s_string - 输入.start_point_code TYPEAS s_string - 输入.next_point_code TYPEAS s_string + 输入.point_code1 TYPEAS s_string + 输入.point_code2 TYPEAS s_string 输入.task_code TYPEAS s_string 输入.vehicle_code TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string 输入.unFinish TYPEAS s_string - 输入.taskdtl_type TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -50,18 +49,18 @@ IF 输入.flag = "1" PAGEQUERY - SELECT - task.* + SELECT + task.*, + md.class_name task_type_name, + dict.label task_status_name FROM sch_base_task task - + LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code + LEFT JOIN sys_dict_detail dict ON dict.`value` = task.task_status AND dict.`name` = 'task_status' WHERE task.is_delete = '0' OPTION 输入.task_type <> "" task.task_type = 输入.task_type - ENDOPTION - OPTION 输入.taskdtl_type <> "" - task.taskdtl_type = 输入.taskdtl_type ENDOPTION OPTION 输入.finished_type <> "" task.finished_type = 输入.finished_type @@ -84,11 +83,8 @@ OPTION 输入.task_code <> "" (task.task_code like 输入.task_code) ENDOPTION - OPTION 输入.start_point_code <> "" - (task.start_point_code like 输入.start_point_code) - ENDOPTION - OPTION 输入.next_point_code <> "" - (task.next_point_code like 输入.next_point_code) + OPTION 输入.point_code <> "" + (task.point_code1 like 输入.point_code1) ENDOPTION OPTION 输入.begin_time <> "" task.create_time >= 输入.begin_time diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java index a7c843fcf..b98b1f5d3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,6 +13,7 @@ import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; @@ -19,6 +21,9 @@ import org.nl.wms.sch.service.dto.PointDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j @@ -26,6 +31,33 @@ public class BookTwoConfirmTask extends AbstractAcsTask { private final String THIS_CLASS = BookTwoConfirmTask.class.getName(); private final CutConveyorTask conveyorTask; + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -126,6 +158,21 @@ public class BookTwoConfirmTask extends AbstractAcsTask { throw new BadRequestException("点位:"+point_code2+"存在未完成的任务!"); } + /*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_END.getCode()) + .point_code2(point_code2) + .acs_task_type("2") + .vehicle_code(form.getString("vehicle_code")) + .vehicle_qty(form.getIntValue("qty")) + .handle_class(THIS_CLASS) + .create_time(DateUtil.now()) + .build();*/ + + + JSONObject json = new JSONObject(); json.put("task_id",IdUtil.getSnowflake(1,1).nextId()); json.put("task_code", CodeUtil.getNewCode("TASK_CODE")); @@ -152,10 +199,7 @@ public class BookTwoConfirmTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java index 1307979bf..7a0338c43 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java @@ -2,32 +2,26 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; -import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; -import org.nl.wms.basedata.master.service.StoragevehicleinfoService; -import org.nl.wms.basedata.master.service.dto.StoragevehicleinfoDto; -import org.nl.wms.pdm.service.DeviceService; -import org.nl.wms.pdm.service.dto.DeviceDto; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; -import java.util.HashMap; +import java.util.ArrayList; +import java.util.List; @Service @RequiredArgsConstructor @@ -35,6 +29,33 @@ import java.util.HashMap; public class CallEmpReelTask extends AbstractAcsTask { private final String THIS_CLASS = CallEmpReelTask.class.getName(); + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -179,10 +200,7 @@ public class CallEmpReelTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java index 23b8b00a0..d63855e17 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -11,15 +12,15 @@ 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.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; @Service @RequiredArgsConstructor @@ -27,6 +28,33 @@ import java.util.HashMap; public class CutConveyorTask extends AbstractAcsTask { private final String THIS_CLASS = CutConveyorTask.class.getName(); + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -142,10 +170,7 @@ public class CutConveyorTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java index c51bfab39..f5dc74ac6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java @@ -12,11 +12,15 @@ 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.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j @@ -24,6 +28,33 @@ public class CutTrussTask extends AbstractAcsTask { private final String THIS_CLASS = CutTrussTask.class.getName(); private final CutConveyorTask conveyorTask; + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -188,10 +219,7 @@ public class CutTrussTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java index 769033e97..df99cc080 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,6 +13,7 @@ import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; @@ -19,12 +21,42 @@ import org.nl.wms.sch.service.dto.PointDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j public class InCoolIvtTask extends AbstractAcsTask { private final String THIS_CLASS = InCoolIvtTask.class.getName(); + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -154,10 +186,7 @@ public class InCoolIvtTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java index c700ff838..9b4d4ac6d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -11,20 +12,48 @@ 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.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j public class InHotTask extends AbstractAcsTask { private final String THIS_CLASS = InHotTask.class.getName(); + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -231,10 +260,7 @@ public class InHotTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java index 33e2bcafd..232b9e088 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java @@ -3,28 +3,59 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; 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.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.TaskService; -import org.nl.wms.sch.service.dto.TaskDto; -import org.nl.wms.st.inbill.service.RawAssistIStorService; import org.nl.wms.st.inbill.service.impl.InbillServiceImpl; import org.nl.wms.st.inbill.service.impl.RawAssistIStorServiceImpl; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** * Created by ZZ on 2021/12/22. */ public class InTask extends AbstractAcsTask { + private final String THIS_CLASS = InTask.class.getName(); + + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { @@ -33,26 +64,26 @@ public class InTask extends AbstractAcsTask { String now = DateUtil.now(); HashMap map = new HashMap(); //1:执行中,2:完成 ,3:acs取消 - if(status.equals("1")){ - map.put("task_status","03"); + if (status.equals("1")) { + map.put("task_status", "03"); //更新入库单分配任务状态 HashMap dis_map = new HashMap(); - dis_map.put("work_status","02"); - dis_map.put("is_issued","1"); - WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map,"task_id = '"+taskObj.getString("task_id")+"'"); + dis_map.put("work_status", "02"); + dis_map.put("is_issued", "1"); + WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "task_id = '" + taskObj.getString("task_id") + "'"); } - if(status.equals("2")){ + if (status.equals("2")) { map.put("task_status", TaskStatusEnum.FINISHED.getCode()); //调用入库分配确认方法 - InbillServiceImpl inbillService = SpringContextHolder.getBean(InbillServiceImpl.class); + InbillServiceImpl inbillService = SpringContextHolder.getBean(InbillServiceImpl.class); JSONObject dis_form = new JSONObject(); - dis_form.put("task_id",taskObj.getString("task_id")); + dis_form.put("task_id", taskObj.getString("task_id")); inbillService.confirmDis(dis_form); } - map.put("update_optid",currentUserId); - map.put("update_optname",nickName); - map.put("update_time",now); - WQLObject.getWQLObject("SCH_BASE_Task").update(map,"task_id = '"+taskObj.getString("task_id")+"'"); + map.put("update_optid", currentUserId); + map.put("update_optname", nickName); + map.put("update_time", now); + WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'"); } @Override @@ -69,7 +100,7 @@ public class InTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { - TaskService taskService = SpringContextHolder.getBean(TaskService.class); + TaskService taskService = SpringContextHolder.getBean(TaskService.class); String task_type = form.getString("task_type"); if (StrUtil.isBlank(task_type)) { throw new BadRequestException("业务类型不能为空"); @@ -118,7 +149,7 @@ public class InTask extends AbstractAcsTask { JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1,1).nextId()); + json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); json.put("task_code", CodeUtil.getNewCode("TASK_CODE")); json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); @@ -129,8 +160,8 @@ public class InTask extends AbstractAcsTask { json.put("create_id", currentUserId); json.put("create_name", currentUsername); json.put("create_time", DateUtil.now()); - json.put("priority","1" ); - json.put("acs_task_type","5" ); + json.put("priority", "1"); + json.put("acs_task_type", "5"); WQLObject.getWQLObject("SCH_BASE_Task").insert(json); return json.getString("task_id"); @@ -141,21 +172,16 @@ public class InTask extends AbstractAcsTask { public void forceFinish(String taskdtl_id) { //任务表 WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); - JSONObject task = wo_Task.query("task_status<>'99' and taskdtl_id='"+taskdtl_id+"'").uniqueResult(0); - if(task==null){ + JSONObject task = wo_Task.query("task_status<>'99' and taskdtl_id='" + taskdtl_id + "'").uniqueResult(0); + if (task == null) { throw new BadRequestException("查询不到操作的任务记录!"); } - Map whereJson = new HashMap(); - whereJson.put("task_code",task.getString("task_code")); - RawAssistIStorServiceImpl inbillService = SpringContextHolder.getBean(RawAssistIStorServiceImpl.class); + Map whereJson = new HashMap(); + whereJson.put("task_code", task.getString("task_code")); + RawAssistIStorServiceImpl inbillService = SpringContextHolder.getBean(RawAssistIStorServiceImpl.class); inbillService.confirmTask(whereJson); } - @Override - public void pullBack(String taskdtl_id) { - - } - @Override public void cancel(String taskdtl_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java index 97979ee1a..a22c67f86 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java @@ -3,6 +3,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -10,17 +11,48 @@ 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.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j public class OutHotTask extends AbstractAcsTask { private final String THIS_CLASS = OutHotTask.class.getName(); + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .vehicle_type(json.getString("vehicle_type")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + return resultList; + } + @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { @@ -150,10 +182,7 @@ public class OutHotTask extends AbstractAcsTask { this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } - @Override - public void pullBack(String task_id) { - } @Override public void cancel(String task_id) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index e5afdc492..abff1988e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -784,14 +784,14 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { //判断指令状态,只能修改生成状态的任务 - String task_code = (String) whereJson.get("task_code"); + String task_code = (String) whereJson.get("task_code");/* TaskDto taskDto = taskService.findByCode(task_code); if (ObjectUtil.isEmpty(taskDto)) { throw new BadRequestException("请输入正确的任务号!"); } if (!taskDto.getTask_status().equals("01")) { throw new BadRequestException("只能修改任务状态为生成的任务!"); - } + }*/ //判断入库点是否修改 if (!whereJson.get("point_code").equals(whereJson.get("new_point_code"))) { @@ -878,14 +878,14 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { //判断指令状态,只能修改生成状态的任务 - String task_id = (String) whereJson.get("task_id"); + /* String task_id = (String) whereJson.get("task_id"); TaskDto taskDto = taskService.findByDtlId(task_id); if (ObjectUtil.isEmpty(taskDto)) { throw new BadRequestException("请输入正确的任务号!"); } if (!taskDto.getTask_status().equals("01")) { throw new BadRequestException("只能修改任务状态为生成的任务!"); - } + }*/ Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); @@ -898,7 +898,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { task_map.put("update_optname", nickName); task_map.put("update_time", now); //修改分配表起点,任务表起点 - task_wql.update(task_map, "task_id = '" + task_id + "'"); +/* task_wql.update(task_map, "task_id = '" + task_id + "'");*/ //解锁原货位点位 HashMap unlock_map = new HashMap(); @@ -970,11 +970,11 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String taskdtl_id = (String) whereJson.get("taskdtl_id"); String task_id = (String) whereJson.get("task_id"); TaskDto taskDto = new TaskDto(); - if (StrUtil.isNotEmpty(taskdtl_id)) { + /* if (StrUtil.isNotEmpty(taskdtl_id)) { taskDto = taskService.findByDtlId(taskdtl_id); } else { taskDto = taskService.findById(task_id); - } + }*/ if (ObjectUtil.isEmpty(taskDto)) { throw new BadRequestException("请输入正确的任务号!"); } @@ -990,7 +990,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { HashMap map = new HashMap<>(); //更新任务指令为下发 JSONObject task_jo = new JSONObject(); - task_jo.put("taskdtl_id", taskDto.getTaskdtl_id()); + task_jo.put("taskdtl_id", ""); task_jo.put("task_id", taskDto.getTask_id()); task.updateTaskStatus(task_jo, "1"); } else { @@ -1003,18 +1003,18 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { @Transactional(rollbackFor = Exception.class) public void confirmTask(Map whereJson) { //判断指令状态,只能下发生成、执行中状态的任务 - String task_code = (String) whereJson.get("task_code"); + /* String task_code = (String) whereJson.get("task_code"); TaskDto taskDto = taskService.findByCode(task_code); if (ObjectUtil.isEmpty(taskDto)) { throw new BadRequestException("请输入正确的任务号!"); - } + }*/ /*if (!taskDto.getTask_status().equals("03")) { throw new BadRequestException("只能修改任务状态为执行中的任务!"); }*/ - JSONObject task_jo = JSONObject.parseObject(JSON.toJSONString(taskDto)); + /*JSONObject task_jo = JSONObject.parseObject(JSON.toJSONString(taskDto)); AbstractAcsTask task = new InTask(); - task.updateTaskStatus(task_jo, "2"); + task.updateTaskStatus(task_jo, "2");*/ } @Override @@ -1026,13 +1026,13 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { //判断指令状态,只能取消完成状态的任务 String task_code = (String) whereJson.get("task_code"); - TaskDto taskDto = taskService.findByCode(task_code); + /* TaskDto taskDto = taskService.findByCode(task_code); if (ObjectUtil.isEmpty(taskDto)) { throw new BadRequestException("请输入正确的任务号!"); } if (!taskDto.getTask_status().equals("99")) { throw new BadRequestException("只能取消任务状态为完成中的任务!"); - } + }*/ //判断主表是否为99,如果为99不允许取消 JSONObject mst_jo = WQLObject.getWQLObject("ST_IVT_IOStorInv").query("iostorinv_id = '" + whereJson.get("iostorinv_id") + "'").uniqueResult(0); diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index be0616438..dbc1dedb5 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -77,27 +77,44 @@ https://juejin.cn/post/6844903775631572999 - + - - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + @@ -105,27 +122,57 @@ https://juejin.cn/post/6844903775631572999 - + - + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lms/nladmin-ui/src/views/wms/sch/point/index.vue b/lms/nladmin-ui/src/views/wms/sch/point/index.vue index a42d8cc15..4cde6c713 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -7,7 +7,7 @@ :inline="true" class="demo-form-inline" label-position="right" - label-width="80px" + label-width="90px" label-suffix=":" > @@ -19,6 +19,23 @@ @keyup.enter.native="crud.toQuery" /> + + + + + - - - - - - - - - - + + + + + + + + + + + + + - - + /> - - - + /> @@ -112,15 +133,52 @@ - 仓位同步 + 启用 + + + 禁用 + + + 锁定 + + + 解锁 @@ -135,6 +193,20 @@ + + + + + @@ -148,9 +220,10 @@ placeholder="点位状态" class="filter-item" style="width: 370px;" + clearable > @@ -171,16 +244,16 @@ /> - + @@ -189,51 +262,7 @@ - - - {{ item.label }} - - - - - - {{ item.label }} - - - - - - - - - - - - - + @@ -255,37 +284,24 @@ + - + + + - - - - - - - - - - - + + - +