diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.idea/aws.xml b/.idea/aws.xml new file mode 100644 index 0000000..b63b642 --- /dev/null +++ b/.idea/aws.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/.idea/beiterui.iml b/.idea/beiterui.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/beiterui.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..3d4aa8e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..a754d29 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..0eefe32 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..29b7f1e --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a9c0559 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f2b1b53 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..7e60fdb --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + "keyToString": { + "RequestMappingsPanelOrder0": "0", + "RequestMappingsPanelOrder1": "1", + "RequestMappingsPanelWidth0": "75", + "RequestMappingsPanelWidth1": "75", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "master", + "last_opened_file_path": "D:/workSpace/beiterui/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "project.structure.last.edited": "模块", + "project.structure.proportion": "0.0", + "project.structure.side.proportion": "0.2", + "spring.configuration.checksum": "e4ee2f4706eb22f8f8c7bfa0ca2c8645", + "vue.rearranger.settings.migration": "true" + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C:\Users\Dell\AppData\Roaming\Subversion + + + + + 1692236228215 + + + 1692255936629 + + + 1692264853815 + + + 1692335875733 + + + 1692344232955 + + + 1692691703800 + + + 1692754464305 + + + 1692769559855 + + + 1695794790261 + + + 1696639760545 + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java + 109 + + + + + \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvUtil.java index c24981b..de549c1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvUtil.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvUtil.java @@ -23,4 +23,19 @@ public class AgvUtil { String nowAsISO = df.format(date); return nowAsISO; } + + /** + * 获得之后num个天的时间 + * + * @return + */ + public static String getDate() { + Calendar calendar = Calendar.getInstance(); + Date date = calendar.getTime(); + TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + df.setTimeZone(tz); + String nowAsISO = df.format(date); + return nowAsISO; + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 8c77122..06f6478 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.acs.device.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -68,6 +69,7 @@ import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.dto.DeviceDto; import org.nl.acs.device.service.dto.DeviceQueryParam; import org.nl.acs.device.service.mapper.DeviceMapper; +import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.logicflow.dao.mapper.StageMapper; import org.nl.system.service.param.ISysParamService; import org.nl.common.utils.CodeUtil; @@ -470,6 +472,7 @@ public class DeviceServiceImpl extends CommonServiceImpl i public JSONArray selectList() { List deviceList= new LambdaQueryChainWrapper<>(deviceMapper) .apply("is_delete= '0' AND is_active= '1' AND is_config = 'true'") + .orderByAsc(Device::getDevice_code) .list(); JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList)); JSONArray result = new JSONArray(); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java new file mode 100644 index 0000000..9ff211c --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java @@ -0,0 +1,102 @@ +package org.nl.acs.device_driver; + + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** + * 驱动类型 + * https://blog.csdn.net/moneyshi/article/details/82978073 + */ +public enum RequestMethodEnum { + apply_mjxl(1, "apply_mjxl", "涂板线满架下料","1"), + feedback_task_status(2, "feedback_task_status", "反馈任务状态","1"); + + + //驱动索引 + private int index; + //驱动编码 + private String code; + // 驱动名字 + private String name; + //驱动描述 + private String desc; + //设备驱动类型 + private String type; + //是否隐藏显示 0否1是 + private String isHidden; + + // 构造方法 + RequestMethodEnum(int index, String code, String name, String isHidden) { + this.index = index; + this.code = code; + this.name = name; + this.isHidden = isHidden; + } + + + //只反馈未隐藏的 + public static JSONArray getList() { + JSONArray arr = new JSONArray(); + for (RequestMethodEnum em : RequestMethodEnum.values()) { + JSONObject json = new JSONObject(); + if(StrUtil.equals(em.getIsHidden(),"0")){ + json.put("code", em.getCode()); + json.put("name", em.getName()); + arr.add(json); + } + } + return arr; + } + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getIsHidden() { + return isHidden; + } + + public void setType(String type) { + this.type = type; + } + + public static String getName(String code) { + for (RequestMethodEnum c : RequestMethodEnum.values()) { + if ( StrUtil.equals(c.code,code)) { + return c.name; + } + } + return null; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java index 789fd76..f5de8fc 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDeviceDriver.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.domain.Device; +import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.utils.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -29,14 +30,16 @@ import java.util.Map; @RequiredArgsConstructor public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver { protected ItemProtocol itemProtocol = new ItemProtocol(this); - @Autowired + InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); - @Autowired + DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl"); - @Autowired + RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl"); - @Autowired + TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); + + AcsToWmsService acsToWmsService=SpringContextHolder.getBean("acsToWmsServiceImpl"); String container; String container_type_desc; String last_container_type_desc; @@ -107,11 +110,15 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem if (action != last_action) { } if (error != last_error) { - //this.execute_log.setContainer(""); + } + if (state != last_state) { + //固化室状态变更后通知lms更新固化室状态 + acsToWmsService.feedbackDeviceStatus(this.devicecode,String.valueOf(state)); } last_action = action; last_mode = mode; last_error = error; + last_state = state; //message = StringFormatUtl.format("设备报警:{}", new Object[]{}); // String manual_create_task = this.getDevice().getExtraValue().get("manual_create_task").toString(); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java index e7ac2dc..08276fc 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java @@ -10,9 +10,11 @@ import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.domain.Device; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.RequestMethodEnum; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.data.feedBackTaskStatus.FeedBackTaskStatusRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.service.InstructionService; @@ -151,6 +153,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp task = this.itemProtocol.getTask(); hasGoods = this.itemProtocol.getMove(); action = this.itemProtocol.getAction(); + material_type = this.itemProtocol.getMaterialType(); if (mode != last_mode) { this.setRequireSucess(false); } @@ -192,25 +195,25 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp case 2: break; case 4: - //todo 叫料 + //叫料 if (move==0){ apply(4); } break; case 5: - //todo 满料出库 + //满料出库 if(move==1){ apply(5); } break; case 6: - //todo 申请空盘 + //申请空盘 if (move==0){ apply(6); } break; case 7: - //todo 空托盘出库 + //空托盘出库 if(move==1){ apply(7); } @@ -234,6 +237,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp last_error = error; last_move = move; last_task = task; + last_material_type = material_type; } @@ -436,12 +440,13 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp return false; } else { this.time = date; - JSONObject json = new JSONObject(); - json.put("device_code", devicecode); - json.put("barcode", barcode); - json.put("is_auto_issue", "0"); - json.put("type", type); - String resp = acsToWmsService.applyTaskToWms(json); + FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); + request.setDevice_code(devicecode); + request.setVehicle_code(String.valueOf(barcode)); + request.setTask_type(String.valueOf(type)); + request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + String resp = acsToWmsService.applyTask(request); JSONObject res_jo = JSONObject.parseObject(resp); if (StrUtil.equals(res_jo.getString("status"), "200")) { this.writing(type); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsUtil.java new file mode 100644 index 0000000..577086c --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsUtil.java @@ -0,0 +1,51 @@ + +package org.nl.acs.ext.wms; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.ISysParamService; +import org.nl.system.service.param.impl.SysParamServiceImpl; + +/** + * ACS连接外部系统工具类: + */ +@Slf4j +public class LmsUtil { + + public static String notifyAcs(String api, W requestParam) { + DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);; + ISysParamService paramService = SpringContextHolder.getBean(SysParamServiceImpl.class); + //判断是否连接立库WCS系统 + String isConnect = paramService.findByCode("hasWms").getValue(); + if (StrUtil.equals("0", isConnect)) { + JSONObject result = new JSONObject(); + result.put("400", "500"); + result.put("message", "参数配置表中-hasWms为:0"); + log.info("请求LMS异常返回参数:{}", String.valueOf(result)); + return String.valueOf(result); + //throw new BadRequestException("参数配置表中-hasWms为:0"); + } + String liKu_wcs_url = paramService.findByCode("wmsurl").getValue(); + try { +// log.info("请求LMS参数:{}", JSON.toJSONString(requestParam)); + String body = HttpRequest + .post(liKu_wcs_url + api).setConnectionTimeout(3000) + .body(JSON.toJSONString(requestParam)) + .execute() + .body(); +// log.info("请求LMS参数返回参数:{}", body); + return body; + } catch (Exception e) { + JSONObject result = new JSONObject(); + result.put("code", "500"); + result.put("message", e.getMessage()); +// log.info("请求LMS异常返回参数:{}", String.valueOf(result)); + return String.valueOf(result); + } + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java index 4533d4e..eb270f2 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java @@ -1,49 +1,57 @@ package org.nl.acs.ext.wms.data; +import cn.hutool.core.util.IdUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import org.nl.acs.agv.AgvUtil; import java.util.HashMap; import java.util.Map; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class BaseRequest { - private Map parameters = new HashMap(); + + /** + * 请求号:uuid 唯一,LMS需要返回对应值 + */ + private String requestNo = IdUtil.simpleUUID(); + + /** + * 请求时间 + */ + private String requestDate = AgvUtil.getDate(); + + /** + * 请求方法编号 + */ + private String request_medthod_code; + + /** + * 请求方法名称 + */ + private String request_medthod_name; + + /** + * 设备号 + */ + private String device_code; + + + /** + * 系统编号 + */ private String systemCode; - private String houseCode; - public String getSystemCode() { - return this.systemCode; - } + /** + * 扩展参数:砖型等 + */ + private Map parameters = new HashMap(); - public void setSystemCode(String systemCode) { - this.systemCode = systemCode; - } - public String getHouseCode() { - return this.houseCode; - } - public void setHouseCode(String houseCode) { - this.houseCode = houseCode; - } - - public BaseRequest() { - } - - public Map getParameters() { - return this.parameters; - } - - public void setParameters(Map parameters) { - this.parameters = parameters; - } - - public Object getParameter(String key) { - return this.parameters.get(key); - } - - public void putParameter(String key, String object) { - this.parameters.put(key, object); - } } - diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java index 687b419..8603864 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java @@ -8,7 +8,10 @@ import java.util.Map; @Data public class CreateTaskRequest extends BaseRequest { - + /** + * 任务编号 + */ + private String task_id; /** * 任务编号 diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusRequest.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusRequest.java new file mode 100644 index 0000000..eb3267b --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusRequest.java @@ -0,0 +1,45 @@ +package org.nl.acs.ext.wms.data.feedBackTaskStatus; + +import lombok.Data; +import org.nl.acs.ext.wms.data.BaseRequest; + +@Data +public class FeedBackTaskStatusRequest extends BaseRequest { + + /** + * 任务id + */ + private String task_id; + + /** + * 任务code + */ + private String task_code; + + /** + * 任务状态 + */ + private String task_status; + + /** + * 任务类型 + */ + private String task_type; + + /** + * 车号 + */ + private String car_no; + + /** + * 载具号 + */ + private String vehicle_code; + + /** + * 动作 1请求取货 2取货完成 3请求放货 4放货完成 + */ + private String action; + + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusResponse.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusResponse.java new file mode 100644 index 0000000..9d2e2c4 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/feedBackTaskStatus/FeedBackTaskStatusResponse.java @@ -0,0 +1,6 @@ +package org.nl.acs.ext.wms.data.feedBackTaskStatus; + +import org.nl.acs.ext.wms.data.BaseResponse; + +public class FeedBackTaskStatusResponse extends BaseResponse { +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java index 4e1d928..bee6056 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsController.java @@ -67,7 +67,7 @@ public class AcsToWmsController { @Log(value = "反馈设备状态") @ApiOperation("反馈设备状态") public ResponseEntity feedbackDeviceStatus(@RequestBody String device_code, String code, String value) { - return new ResponseEntity<>(acstowmsService.feedbackDeviceStatus(device_code, code, value), HttpStatus.OK); + return new ResponseEntity<>(acstowmsService.feedbackDeviceStatus(device_code, value), HttpStatus.OK); } @PostMapping("/feedbackOrderStatus") diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 57875fb..55cff79 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -38,7 +38,7 @@ public interface AcsToWmsService { * @param device_code * @return */ - HttpResponse feedbackDeviceStatus(String device_code, String code, String value); + HttpResponse feedbackDeviceStatus(String device_code, String state); /** * 反馈AGV设备信息 @@ -112,4 +112,9 @@ public interface AcsToWmsService { * @return */ HttpResponse feedAgvTaskStatus(JSONArray from); + + /** + * ACS向WMS申请晟华任务 + */ + public String applyTask(BaseRequest request); } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 3a3e625..e87306b 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -8,12 +8,14 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.AcsConfig; import org.nl.acs.address.service.AddressService; import org.nl.acs.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; +import org.nl.acs.ext.wms.LmsUtil; import org.nl.acs.ext.wms.data.*; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.log.service.DeviceExecuteLogService; @@ -199,18 +201,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } @Override - public HttpResponse feedbackDeviceStatus(String device_code, String code, String value) { + public HttpResponse feedbackDeviceStatus(String device_code, String state) { String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); JSONObject json = new JSONObject(); json.put("device_code", device_code); json.put("back_time", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS")); - JSONArray ja = new JSONArray(); - JSONObject jo = new JSONObject(); - jo.put("code", code); - jo.put("value", value); - ja.add(jo); - json.put("data", ja); + json.put("state", state); AddressDto addressDto = addressService.findByCode("feedbackDeviceStatus"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; @@ -553,4 +550,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } return result; } + + @Override + public String applyTask(BaseRequest requestParam) { + try { + MDC.put(log_file_type, log_type); + String api = addressService.findByCode("applyTaskToWms").getMethods_url(); + log.info("applyTaskToWms-----输入参数{}", JSON.toJSONString(requestParam, SerializerFeature.DisableCircularReferenceDetect)); + String result = LmsUtil.notifyAcs(api, requestParam); + log.info("applyTaskToWms-----输出参数{}", result); + return result; + } finally { + MDC.remove(log_file_type); + } + + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 3a1fa49..ce5e302 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -464,6 +464,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { for (int i = 0; i < reqs.size(); i++) { CreateTaskRequest req = reqs.get(i); String task_code = req.getTask_code(); + String task_id =req.getTask_id(); String start_device_code = req.getStart_device_code(); String next_device_code = req.getNext_device_code(); String priority = req.getPriority(); @@ -475,6 +476,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String start_point_code = ""; String next_point_code = ""; + if (StrUtil.isEmpty(task_id)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "任务号不能为空"); + errArr.add(json); + continue; + } if (StrUtil.isEmpty(task_code)) { JSONObject json = new JSONObject(); json.put("task_code", task_code); @@ -566,6 +574,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } JSONObject jo = new JSONObject(); + jo.put("ext_task_id",task_id); jo.put("task_code", task_code); jo.put("task_id", IdUtil.simpleUUID()); jo.put("start_point_code", start_point_code); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java index 5ae3c19..ca3a094 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java @@ -312,11 +312,11 @@ public class RouteLineServiceImpl extends CommonServiceImpl impleme String start_device_code = dto.getStart_device_code(); String next_device_code = dto.getNext_device_code(); String route_plan_code = dto.getRoute_plan_code(); - dto.setCreate_by(currentUsername); + dto.setCreate_by("auto"); dto.setUpdate_by(currentUsername); dto.setUpdate_time(now); dto.setCreate_time(now); @@ -865,89 +867,21 @@ public class TaskServiceImpl extends CommonServiceImpl impleme String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); - JSONObject feed_jo = new JSONObject(); - feed_jo.put("task_id", entity.getExt_task_id()); - feed_jo.put("task_code", dto.getTask_code()); - feed_jo.put("task_status", dto.getTask_status()); - JSONArray ja = new JSONArray(); - ja.add(feed_jo); - String message = null; - HttpResponse body = null; + FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); + request.setTask_code(entity.getTask_code()); + request.setTask_status(entity.getTask_status()); + request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); boolean flag = false; + String resp = null; try { - body = acstowmsService.feedbackTaskStatusToWms(ja); + resp = acstowmsService.applyTask(request); + log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); } catch (Exception e) { - flag = true; - message = e.getMessage(); - e.printStackTrace(); + log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); } finally { } - if (flag) { - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(message); - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setRemark(message); - taskFeedbackService.update(feefbackdto); - } - } else { - int status = body.getStatus(); - JSONObject jo = JSONObject.parseObject(body.body()); - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setError_code(String.valueOf(body.getStatus())); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getNext_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - if (status == 200) { - } else { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } - taskFeedbackService.update(feefbackdto); - } - } } } @@ -981,95 +915,24 @@ public class TaskServiceImpl extends CommonServiceImpl impleme // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { - TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); - System.out.println(feefbackdto == null); - JSONObject feed_jo = new JSONObject(); - feed_jo.put("task_id", entity.getTask_id()); - feed_jo.put("task_code", entity.getTask_code()); - feed_jo.put("task_status", entity.getTask_status()); - JSONArray ja = new JSONArray(); - ja.add(feed_jo); - String message = null; - HttpResponse body = null; + FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); + request.setTask_id(entity.getExt_task_id()); + request.setTask_code(entity.getTask_code()); + request.setTask_status(entity.getTask_status()); + request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); boolean flag = false; + String resp = null; try { - body = acstowmsService.feedbackTaskStatusToWms(ja); - log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), body.body()); + resp = acstowmsService.applyTask(request); + log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); } catch (Exception e) { log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); flag = true; - message = e.getMessage(); e.printStackTrace(); } finally { } - if (flag) { - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(message); - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setRemark(message); - taskFeedbackService.update(feefbackdto); - } - } else { - int status = body.getStatus(); - JSONObject jo = JSONObject.parseObject(body.body()); - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setError_code(String.valueOf(body.getStatus())); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getNext_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.update(feefbackdto); - } - } } // 如果属于先知AGV,关闭运单序列 if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { @@ -1118,13 +981,23 @@ public class TaskServiceImpl extends CommonServiceImpl impleme // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { - JSONObject feed_jo = new JSONObject(); - feed_jo.put("task_id", entity.getTask_id()); - feed_jo.put("task_code", entity.getTask_code()); - feed_jo.put("task_status", entity.getTask_status()); - JSONArray ja = new JSONArray(); - ja.add(feed_jo); - acstowmsService.feedbackTaskStatusToWms(ja); + FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); + request.setTask_id(entity.getExt_task_id()); + request.setTask_id(entity.getExt_task_id()); + request.setTask_code(entity.getTask_code()); + request.setTask_status(entity.getTask_status()); + request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + boolean flag = false; + String resp = null; + try { + resp = acstowmsService.applyTask(request); + log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); + } catch (Exception e) { + log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); + } finally { + + } } List shortPathsList = routeLineService.getShortPathLines( diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index a248830..b380561 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -81,7 +81,7 @@ spring: threads: 4 nettyThreads: 4 singleServerConfig: - database: 1 + database: 3 connectionMinimumIdleSize: 8 connectionPoolSize: 8 address: redis://127.0.0.1:6379 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/AcsToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java similarity index 61% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/AcsToWmsController.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java index b97566c..4dd423b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/AcsToWmsController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext; +package org.nl.wms.ext.controller; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSON; @@ -7,6 +7,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nl.common.logging.annotation.Log; +import org.nl.wms.ext.service.AcsToWmsService; +import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -29,16 +31,29 @@ import java.util.Map; @Slf4j @SaIgnore public class AcsToWmsController { + @Autowired - private ISchBaseTaskService schBaseTaskService; + private ISchBasePointService schBasePointService; + + @Autowired + private AcsToWmsService acsToWmsService; @PostMapping("/apply") @Log("新增任务管理") @ApiOperation("新增任务管理") //@SaCheckPermission("@el.check('schBaseTask:add')") @SaIgnore - public ResponseEntity apply(@RequestBody Map param) { - schBaseTaskService.apply(JSONObject.parseObject(JSON.toJSONString(param))); + public ResponseEntity apply(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.acsApply(param), HttpStatus.OK); + } + + @PostMapping("/status") + @Log("设备状态同步") + @ApiOperation("设备状态同步") + //@SaCheckPermission("@el.check('schBaseTask:add')") + @SaIgnore + public ResponseEntity status(@RequestBody Map param) { + schBasePointService.updateStatus(JSONObject.parseObject(JSON.toJSONString(param))); return new ResponseEntity<>(HttpStatus.CREATED); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java new file mode 100644 index 0000000..674f9e8 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java @@ -0,0 +1,18 @@ +package org.nl.wms.ext.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.service.dto.to.BaseResponse; + +/** + * @Author: lyd + * @Description: acs请求wms + * @Date: 2023/6/26 + */ +public interface AcsToWmsService { + /** ACS请求接口 */ + BaseResponse acsApply(JSONObject param); + + /** 任务反馈 */ + BaseResponse feedbackTaskStatus(JSONObject param); + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java new file mode 100644 index 0000000..6600787 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java @@ -0,0 +1,120 @@ +package org.nl.wms.ext.service.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 垛型参数 + * @Date: 2023/7/18 + */ +@Data +public class PalletizeDto { + /** 产品编号 */ + private String product_code; + /** A长边 */ + private String AlongSide; + /** B短边 */ + private String BshortSide; + /** H梯形高 */ + private String Htrapezoidal; + /** W厚度 */ + private String Wthickness; + /** 当前垛盘数 */ + private String tray_qty; + /** 垛盘高度 */ + private String tray_high; + /** 垛型类别 */ + private String crib_category; + /** 码垛X1行 */ + private String palletX1_line; + /** 码垛Y1列 */ + private String palletY1_row; + /** 码垛A1角度 */ + private String palletA1_angle; + /** 码垛X2行 */ + private String palletX2_line; + /** 码垛Y2列 */ + private String palletY2_row; + /** 码垛A2角度 */ + private String palletA2_angle; + /** 码垛X3行 */ + private String palletX3_line; + /** 码垛Y3列 */ + private String palletY3_row; + /** 码垛A3角度 */ + private String palletA3_angle; + /** 压垛X1行 */ + private String pressCribX1_line; + /** 压垛Y1列 */ + private String pressCribY1_row; + /** 压垛A1角度 */ + private String pressCribA1_angle; + /** 压垛X2行 */ + private String pressCribX2_line; + /** 压垛Y2列 */ + private String pressCribY2_row; + /** 压垛A2角度 */ + private String pressCribA2_angle; + /** 压垛X3行 */ + private String pressCribX3_line; + /** 压垛Y3列 */ + private String pressCribY3_row; + /** 压垛A3角度 */ + private String pressCribA3_angle; + /** Z轴偏移 */ + private String Zoffset; + /** 码垛层数 */ + private String pallet_layerQty; + /** 压垛层数 */ + private String pressCrib_layerQty; + /** 码层X1间隔 */ + private String codeLayerX1_interval; + /** 码层Y1间隔 */ + private String codeLayerY1_interval; + /** 码层X2间隔 */ + private String codeLayerX2_interval; + /** 码层Y2间隔 */ + private String codeLayerY2_interval; + /** 码层X3间隔 */ + private String codeLayerX3_interval; + /** 码层Y3间隔 */ + private String codeLayerY3_interval; + /** 码层X1偏移 */ + private String codeLayerX1_offset; + /** 码层Y1偏移 */ + private String codeLayerY1_offset; + /** 码层X2偏移 */ + private String codeLayerX2_offset; + /** 码层Y2偏移 */ + private String codeLayerY2_offset; + /** 码层X3偏移 */ + private String codeLayerX3_offset; + /** 码层Y3偏移 */ + private String codeLayerY3_offset; + /** 压层X1间隔 */ + private String pressLayerX1_interval; + /** 压层Y1间隔 */ + private String pressLayerY1_interval; + /** 压层X2间隔 */ + private String pressLayerX2_interval; + /** 压层Y2间隔 */ + private String pressLayerY2_interval; + /** 压层X3间隔 */ + private String pressLayerX3_interval; + /** 压层Y3间隔 */ + private String pressLayerY3_interval; + /** 压层X1偏移 */ + private String pressLayerX1_offset; + /** 压层Y1偏移 */ + private String pressLayerY1_offset; + /** 压层X2偏移 */ + private String pressLayerX2_offset; + /** 压层Y2偏移 */ + private String pressLayerY2_offset; + /** 压层X3偏移 */ + private String pressLayerX3_offset; + /** 压层Y3偏移 */ + private String pressLayerY3_offset; + /** 工具坐标 */ + private String tool_coordinate; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java new file mode 100644 index 0000000..03e3deb --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java @@ -0,0 +1,32 @@ +package org.nl.wms.ext.service.dto; + +import lombok.Data; + +/** + * 调用立库接口统一返回参数类 + * + * @author: geng by + * @createDate: 2022/11/24 + */ +@Data +public class Resp { + /** + * 成功返回true,失败返回false + */ + public String result; + + /** + * 错误码(0表示成功)1代表入库目的位置有货,其他更多情况待定 + */ + public String code; + + /** + * 错误信息,如果成功则为null + */ + public String comment; + + /** + * 报文携带的数据 + */ + public T data; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java new file mode 100644 index 0000000..ad0a925 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java @@ -0,0 +1,46 @@ +package org.nl.wms.ext.service.dto; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +/** + * @Author: lyd + * @Description: 统一接口返回 - 请求ACS返回的数据类型 - 以前不做处理的类型 + * @Date: 2023/7/28 + */ +@Data +public class ResultForAcs { + private int status; + private String message; + private String timestamp; + private JSONObject data; + private JSONArray errArr; + + public static ResultForAcs requestRefuse(String message) { + ResultForAcs result = new ResultForAcs(); + result.setStatus(HttpStatus.HTTP_BAD_REQUEST); + result.setMessage(message); + result.setTimestamp(DateUtil.now()); + return result; + } + + public static ResultForAcs requestOk() { + ResultForAcs result = new ResultForAcs(); + result.setStatus(HttpStatus.HTTP_OK); + result.setMessage("请求成功"); + result.setTimestamp(DateUtil.now()); + return result; + } + + public static ResultForAcs requestOk(String message, JSONObject data) { + ResultForAcs result = new ResultForAcs(); + result.setStatus(HttpStatus.HTTP_OK); + result.setMessage(message); + result.setTimestamp(DateUtil.now()); + result.setData(data); + return result; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java new file mode 100644 index 0000000..2e5f72a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java @@ -0,0 +1,24 @@ +package org.nl.wms.ext.service.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 信号:mode:'1', move:'0'之类 + * @Date: 2023/7/26 + */ +@Data +public class SignalData { + + private String code; // to_command + + private String value; // 1 + + public static SignalData buildSignalData(String code, String value) { + SignalData signalData = new SignalData(); + signalData.setCode(code); + signalData.setValue(value); + return signalData; + } +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java new file mode 100644 index 0000000..9a2e3fe --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java @@ -0,0 +1,59 @@ +package org.nl.wms.ext.service.dto.to; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * ACS请求基础实体 + */ +@Data +public class BaseRequest { + + /** + * 请求号:uuid 唯一,LMS需要返回对应值 + */ + private String requestNo; + + /** + * 请求时间 + */ + private String requestDate; + + /** + * 请求方法编号 + */ + private String request_medthod_code; + + /** + * 请求方法名称 + */ + private String request_medthod_name; + + /** + * 设备号 + */ + private String device_code; + + + /** + * 系统编号 + */ + private String systemCode; + + /** + * 扩展参数:砖型等 + */ + private Map parameters = new HashMap(); + + public static BaseRequest createRequest() { + BaseRequest baseRequest = new BaseRequest(); + baseRequest.setRequestNo(IdUtil.simpleUUID()); + baseRequest.setRequestDate(DateUtil.now()); + return baseRequest; + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java new file mode 100644 index 0000000..b39b2e1 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java @@ -0,0 +1,97 @@ +package org.nl.wms.ext.service.dto.to; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BaseResponse implements Serializable { + + /** + * 请求号 + */ + private String requestNo; + + /** + * 响应时间 + */ + private String responseDate; + + /** + * 结果 200成功 + */ + private int code; + + /** + * 信息 + */ + private String message; + + /** + * 扩展信息 + */ + private Map parameters = new HashMap(); + + public static BaseResponse build(String requestNo) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_OK); + response.setMessage("请求成功"); + response.setResponseDate(DateUtil.now()); + return response; + } + + public static BaseResponse responseOk(String requestNo) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_OK); + response.setMessage("请求成功"); + response.setResponseDate(DateUtil.now()); + return response; + } + public static BaseResponse responseOk(String requestNo, String message) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_OK); + response.setMessage(message); + response.setResponseDate(DateUtil.now()); + return response; + } + public static BaseResponse responseOk(String requestNo, HashMap parameters) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_OK); + response.setMessage("请求成功"); + response.setResponseDate(DateUtil.now()); + response.setParameters(parameters); + return response; + } + + public static BaseResponse responseError(String requestNo, String message) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_BAD_REQUEST); + response.setMessage(message); + response.setResponseDate(DateUtil.now()); + return response; + } + public static BaseResponse responseError(String requestNo, int code, String message) { + BaseResponse response = new BaseResponse(); + response.setRequestNo(requestNo); + response.setCode(code); + response.setMessage(message); + response.setResponseDate(DateUtil.now()); + return response; + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java new file mode 100644 index 0000000..12d7790 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java @@ -0,0 +1,50 @@ +package org.nl.wms.ext.service.dto.to.acs; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseResponse; + +@Data +public class ApplyTaskResponse extends BaseResponse { + /** + * 是否静置完成 1完成 + */ + private String is_standing_finish; + + /** + * 是否优先包装 + */ + private String is_package; + private String mix_number; + private String weight; + private String label_message; + + public static ApplyTaskResponse responseOk(String requestNo) { + ApplyTaskResponse response = new ApplyTaskResponse(); + response.setRequestNo(requestNo); + response.setMessage("任务申请成功"); + response.setResponseDate(DateUtil.now()); + response.setCode(HttpStatus.HTTP_OK); + return response; + } + + public static ApplyTaskResponse responseOk(String requestNo, String message) { + ApplyTaskResponse response = new ApplyTaskResponse(); + response.setRequestNo(requestNo); + response.setMessage("任务申请成功"); + response.setResponseDate(DateUtil.now()); + response.setCode(HttpStatus.HTTP_OK); + response.setLabel_message(message); + return response; + } + public static ApplyTaskResponse responseError(String requestNo, String message) { + ApplyTaskResponse response = new ApplyTaskResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_BAD_REQUEST); + response.setMessage(message); + response.setResponseDate(DateUtil.now()); + return response; + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java new file mode 100644 index 0000000..fc00964 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java @@ -0,0 +1,37 @@ +package org.nl.wms.ext.service.dto.to.acs; + +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseRequest; + +import java.util.Map; + +/** + * @Author: lyd + * @Description: 取消任务请求 + * @Date: 2023/7/26 + */ +@Data +public class CancelTaskRequest extends BaseRequest { + + /** + * 任务标识 + */ + private String ext_task_id; + + /** + * 任务编号 + */ + private String task_code; + + /** + * 载具号 + */ + String vehicle_code; + + /** + * 扩展属性 + */ + Map params; + +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java new file mode 100644 index 0000000..bd7c7bc --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java @@ -0,0 +1,13 @@ +package org.nl.wms.ext.service.dto.to.acs; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/8/4 + */ +@Data +public class DeviceInfoDto { + private String device_code; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java new file mode 100644 index 0000000..fc2df3c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java @@ -0,0 +1,34 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONArray; +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseResponse; + +/** + * @Author: lyd + * @Description: 下发acs的反馈数据*new + * @Date: 2023/7/26 + */ +@Data +public class AcsResponse extends BaseResponse { + private JSONArray errArr = new JSONArray(); + + public static AcsResponse requestRefuse(String message) { + AcsResponse result = new AcsResponse(); + result.setCode(HttpStatus.HTTP_BAD_REQUEST); + result.setMessage(message); + result.setResponseDate(DateUtil.now()); + return result; + } + + public static AcsResponse requestOk() { + AcsResponse result = new AcsResponse(); + result.setCode(HttpStatus.HTTP_OK); + result.setMessage("请求成功"); + result.setResponseDate(DateUtil.now()); + return result; + } +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java new file mode 100644 index 0000000..4d2bf42 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java @@ -0,0 +1,32 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/8/14 + */ +@Data +public class ApplyDeviceDto { + + /** + * 设备编码 + */ + private String device_code; + + /** + * 数量 + */ + private String qty; + + /** + * 载具号 + */ + private String vehicle_code; + + /** + * 载具类型 + */ + private String vehicle_type; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java new file mode 100644 index 0000000..60598cd --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java @@ -0,0 +1,27 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseRequest; + +/** + * @Author: lyd + * @Description: 光电信号实时反馈 + * @Date: 2023/8/10 + */ +@Data +public class ApplySignalStatusRequest extends BaseRequest { + /** + * 光电信号 0无货 1有货 + */ + private String move; + + /** + * 载具类型 + */ + private String vehicle_type; + + /** + * 是否允许 0不允许 1允许 + */ + private String action; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java new file mode 100644 index 0000000..22fda56 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java @@ -0,0 +1,47 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseRequest; + +import java.util.List; + +/** + * ACS 任务申请请求实体 + */ +@Data +public class ApplyTaskRequest extends BaseRequest { + + /** + * 载具号 + */ + private String vehicle_code; + + /** + * 载具类型 + */ + private String vehicle_type; + + /** + * 重量 + */ + private String weight; + + /** + * 工单号 + */ + private String order_code; + + /** + * 物料 + */ + private String material_code; + + /** + * 数量 + */ + private String qty; + /** + * 关联设备属性 + */ + private List list; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java new file mode 100644 index 0000000..d424a98 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java @@ -0,0 +1,14 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseResponse; + +/** + * @Author: lyd + * @Description: 取消任务 + * @Date: 2023/7/26 + */ +@Data +public class CancelTaskResponse extends BaseResponse { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java new file mode 100644 index 0000000..c3b9015 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java @@ -0,0 +1,48 @@ +package org.nl.wms.ext.service.dto.to.wms; + +import lombok.Data; +import org.nl.wms.ext.service.dto.to.BaseRequest; + +/** + * ACS任务反馈请求实体 + */ +@Data +public class FeedBackTaskStatusRequest extends BaseRequest { + + /** + * 任务id + */ + private String task_id; + + /** + * 任务code + */ + private String task_code; + + /** + * 任务状态 + */ + private String task_status; + + /** + * 任务类型 + */ + private String task_type; + + /** + * 车号 + */ + private String car_no; + + /** + * 载具号 + */ + private String vehicle_code; + + /** + * 动作 1请求取货 2取货完成 3请求放货 4放货完成 + */ + private String action; + + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java new file mode 100644 index 0000000..bf3614d --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java @@ -0,0 +1,151 @@ +package org.nl.wms.ext.service.impl; + +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 cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.ext.service.AcsToWmsService; +import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.service.dto.to.wms.FeedBackTaskStatusRequest; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.PointStatusEnum; +import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; +import org.nl.wms.sch.task_manage.task.TaskFactory; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +/** + * @Author: lyd + * @Description: acs请求wms的实现类 + * @Date: 2023/6/26 + */ +@Slf4j +@Service +public class AcsToWmsServiceImpl implements AcsToWmsService { + + // 反射类方法的缓存 + private Map methodCache = new ConcurrentHashMap<>(); + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private TaskFactory taskFactory; + @Autowired + private ISysNoticeService noticeService; + + // 初始化反射方法 + @PostConstruct + public void initCacheMethod() { + for (Method method : this.getClass().getMethods()) { + if (method.getParameterCount() == 1 && method.getParameterTypes()[0] == JSONObject.class) { + methodCache.put(method.getName(), method); + } + } + } + + @Override + public BaseResponse acsApply(JSONObject param) { + String requestNo = param.getString("requestNo"); + String requestMethodName = param.getString("request_medthod_name"); + BaseResponse result = BaseResponse.build(requestNo); + try { + String requestMethodCode = param.getString("request_medthod_code"); // 获取请求方法名 + Method method = methodCache.get(StrUtil.toCamelCase(requestMethodCode)); + if (method == null) { + throw new BadRequestException("请求方法不存在"); + } + result = (BaseResponse) method.invoke(this, param); + } catch (Exception e) { + String message = ObjectUtil.isEmpty(e.getMessage()) + ? ((InvocationTargetException) e).getTargetException().getMessage() + : e.getMessage(); + log.error("ACS请求LMS出现错误: {}", message); + result.setCode(HttpStatus.HTTP_BAD_REQUEST); + result.setMessage(message); + result.setRequestNo(requestNo); + // 消息通知 + noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"), + NoticeTypeEnum.EXCEPTION.getCode()); + } + return result; + } + + /** + * 任务反馈 + */ + @Override + public BaseResponse feedbackTaskStatus(JSONObject param) { + String requestNo = param.getString("requestNo"); + FeedBackTaskStatusRequest taskStatusRequest = param.toJavaObject(FeedBackTaskStatusRequest.class); + String taskId = taskStatusRequest.getTask_id(); + if (ObjectUtil.isEmpty(taskId)) { + throw new BadRequestException("任务编码不能为空!"); + } + SchBaseTask taskObj = taskService.getById(taskId); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("未找到任务编码为 [" + taskId + "] 的任务"); + } + // 任务处理类 + String processingClass = taskObj.getConfig_code(); + //1:执行中,2:完成 ,3:acs取消 + String acsTaskStatus = param.getString("task_status"); + String message = ""; + TaskStatus status = TaskStatus.APPLY; + switch (acsTaskStatus) { + case "1": + status = TaskStatus.EXECUTING; + break; + case "2": + status = TaskStatus.FINISHED; + break; + case "3": + status = TaskStatus.CANCELED; + break; + default: + break; + } + // 根据配置去工厂类获得类对象 + AbstractTask abstractTask = taskFactory.getTask(processingClass); + // 更新任务 + try { + abstractTask.updateTaskStatus(taskId, status); + } catch (Exception e) { + log.error("任务状态更新失败: {}", message); + return BaseResponse.responseError(requestNo, "任务:[" + taskId + "]状态更新失败," + message); + } + return BaseResponse.responseOk(requestNo, "任务状态反馈成功!"); + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java index a7cc0fa..4e9ad65 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java @@ -56,4 +56,10 @@ public interface ISchBasePointService extends IService { */ List getPointList(SchBasePoint region); + /** + * 更改固化室点位状态 + * @param jsonObject + */ + void updateStatus(JSONObject jsonObject); + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index 453fe8d..431cbd1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -141,17 +142,17 @@ public class SchBasePointServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.like("point_code","GHS"+device_code.substring(device_code.length()-2)); + updateWrapper.set("point_status",state); + pointMapper.update(null,updateWrapper); + } + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java index ec58783..635327f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java @@ -22,7 +22,11 @@ public class SchBaseTask implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "task_code", type = IdType.NONE) + @TableId(value = "task_id", type = IdType.NONE) + @ApiModelProperty(value = "任务标识") + private String task_id; + + @ApiModelProperty(value = "任务编码") private String task_code; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index 3b1062b..149a02f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -80,7 +80,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl param) { - String task_code = ObjectUtil.isNotEmpty(param.get("task_code")) ? param.get("task_code").toString() : null; + String task_id = ObjectUtil.isNotEmpty(param.get("task_id")) ? param.get("task_id").toString() : null; String method_name = ObjectUtil.isNotEmpty(param.get("method_name")) ? param.get("method_name").toString() : null; String config_code = ObjectUtil.isNotEmpty(param.get("config_code")) ? param.get("config_code").toString() : null; - if (ObjectUtil.isEmpty(task_code) || ObjectUtil.isEmpty(method_name) || ObjectUtil.isEmpty(config_code)) { + if (ObjectUtil.isEmpty(task_id) || ObjectUtil.isEmpty(method_name) || ObjectUtil.isEmpty(config_code)) { throw new BadRequestException("操作失败"); } // 根据标识找到任务 - SchBaseTask taskOne = schBaseTaskMapper.selectById(task_code); + SchBaseTask taskOne = schBaseTaskMapper.selectById(task_id); if (Integer.parseInt(taskOne.getTask_status()) >= Integer.parseInt(TaskStatus.FINISHED.getCode())) { throw new BadRequestException("任务已完成或已取消!"); } @@ -233,10 +241,10 @@ public class SchBaseTaskServiceImpl extends ServiceImpl list = new ArrayList<>(); for (SchBaseTask task : taskList) { AcsTaskDto taskDto = new AcsTaskDto(); - taskDto.setExt_task_uuid(task.getTask_code()); + taskDto.setTask_id(task.getTask_id()); taskDto.setTask_code(task.getTask_code()); taskDto.setRoute_plan_code("normal"); @@ -217,4 +217,8 @@ public abstract class AbstractTask { } } + public void updateTaskStatus(String task_code, TaskStatus status) { + this.updateStatus(task_code, status); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java index 4b11d7d..649d7c0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class AcsTaskDto { //任务标识 - private String ext_task_uuid; + private String task_id; //任务编码 private String task_code; //任务类型 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java index 1c87e13..6471236 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java @@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -20,7 +21,9 @@ import java.util.List; public class AcsUtil { public static JSONObject notifyAcs(String api, List list) { //判断是否连接ACS系统 - String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue(); + String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_connect_acs").getValue(); + // list转JSONArray + String s = JSON.toJSONString(list); JSONObject result = new JSONObject(); if (StrUtil.equals("0", isConnect)) { result.put("status", HttpStatus.BAD_REQUEST.value()); @@ -29,13 +32,13 @@ public class AcsUtil { return result; } //ACS地址:127.0.0.1:8010 - String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ACS_URL").getValue(); + String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue(); String url = acsUrl + api; log.info("下发acs任务的参数为:{}", list.toString()); try { String resultMsg = HttpRequest.post(url) - .body(String.valueOf(list)) + .body(s) .execute().body(); result = JSONObject.parseObject(resultMsg); } catch (Exception e) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java index 37fa409..147429b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java @@ -23,11 +23,10 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; @@ -59,11 +58,11 @@ public class BPSLTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 @@ -137,8 +136,8 @@ public class BPSLTask extends AbstractTask { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java index fbabfc3..a7811f0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java @@ -23,11 +23,10 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; @@ -59,11 +58,11 @@ public class KGHJRKTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 @@ -137,8 +136,8 @@ public class KGHJRKTask extends AbstractTask { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java index 85ce8aa..c077e3a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java @@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; -import org.nl.config.MapOf; import org.nl.wms.pdm.service.IPdmBdWorkorderService; import org.nl.wms.pdm.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; @@ -23,16 +22,13 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; /** * @Author: psh @@ -59,22 +55,24 @@ public class MJXLTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper pointMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); // 找终点 + SchBasePoint startPoint= pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, task.getPoint_code1())); String extGroupData = task.getExt_group_data(); JSONObject jsonObject = JSONObject.parseObject(extGroupData); - SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + String materialType=jsonObject.getString("material_type"); + SchBasePoint point = findNextPoint(startPoint, jsonObject); if (ObjectUtil.isEmpty(point)) { task.setRemark("未找到所需点位!"); taskService.update(task); @@ -87,58 +85,56 @@ public class MJXLTask extends AbstractTask { task.setRemark(""); taskService.update(task); - point.setIng_task_code(task.getTask_code()); + //发起任务时先把点位占用,防止发起重复任务 + point.setVehicle_qty(point.getVehicle_qty()+1); + point.setVehicle_type(materialType); pointService.update(point); //下发 -// this.renotifyAcs(task); + this.renotifyAcs(task); } } /** - * 判断是否加急:是->入窑口,否->双层缓存线 + * 判断目标点位 + * 1.A区的去A区缓存点,B区的去B区 + * 2.优先找未放满的固化室的起始位置01和06,且物料必须一致 + * 4.固化室不满足条件时按顺序取下一个固化室 + * 5.都不满足则抛出异常暂时等待 * - * @param nextRegionStr + * @param startPoint * @param extGroupData * @return */ - private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) { - // 需要获取nextRegionStr - if (nextRegionStr.size() < 2) { - throw new BadRequestException("压制送料任务的配置文件有错!"); + private SchBasePoint findNextPoint(SchBasePoint startPoint, JSONObject extGroupData) { + String regionCode=null; + String materialType=extGroupData.getString("material_type"); + if("TBX1".equals(startPoint.getRegion_code())){ + //TBX1找A区 + regionCode="GHS1"; + + }else if ("TBX2".equals(startPoint.getRegion_code())){ + //TBX2找B区 + regionCode="GHS2"; } - String regionCode = nextRegionStr.get(0); - // 当前设备的工单 - String workorderCode = extGroupData.getString("workorder_code"); - PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode) - ? workorderService.getOne(new LambdaQueryWrapper() - .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) - : null; - if (one == null) { - throw new BadRequestException("压制机的工单不能为空!"); + List schBasePointList=pointMapper.findPointByRegion(regionCode); + for (SchBasePoint schBasePoint:schBasePointList){ + if(!schBasePoint.getPoint_code().endsWith("01")&& + !schBasePoint.getPoint_code().endsWith("06")){ + continue; + } + if((schBasePoint.getVehicle_type()==null|| + materialType.equals(schBasePoint.getVehicle_type())) + &&schBasePoint.getVehicle_qty()<3){ + return schBasePoint; + } } - // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线 - if (one.getIs_urgent()) { - regionCode = nextRegionStr.get(1); // 去窑区 - } - List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject( - MapOf.of("regionCode", regionCode, "pointType", ENTRANCE))); - return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null; - // ?? -// LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); -// lam.eq(SchBasePoint::getRegion_code, regionCode) -// .eq(SchBasePoint::getPoint_type, ENTRANCE) -// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 -// .or() -// .eq(SchBasePoint::getIng_task_code, "")) -// .eq(SchBasePoint::getIs_used, true); -// List schBasePoints = pointService.list(lam); -// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; + return new SchBasePoint(); } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { @@ -175,6 +171,7 @@ public class MJXLTask extends AbstractTask { } // 终点解锁 endPointObj.setIng_task_code(""); + endPointObj.setVehicle_code(endPointObj.getVehicle_code()==null?"":endPointObj.getVehicle_code()+vehicle_code+","); pointService.update(endPointObj); // 要把数据存到组盘表 -> 改造公共方法,返回id SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); @@ -206,6 +203,7 @@ public class MJXLTask extends AbstractTask { groupEntity.setIs_delete(false); vehiclematerialgroupService.save(groupEntity); + // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setGroup_id(groupEntity.getGroup_id()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java index 0b79de0..75752a2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java @@ -23,11 +23,10 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; @@ -59,11 +58,11 @@ public class TBXBKJTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 @@ -137,8 +136,8 @@ public class TBXBKJTask extends AbstractTask { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java index ddd5169..3316762 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java @@ -23,11 +23,10 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; @@ -59,11 +58,11 @@ public class XSCKTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 @@ -137,8 +136,8 @@ public class XSCKTask extends AbstractTask { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java index 624bcef..e90d441 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java @@ -23,11 +23,10 @@ import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.nl.wms.util.PointUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; @@ -59,11 +58,11 @@ public class ZJBZKDDTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Override - @Transactional(rollbackFor = Exception.class) - public void create() throws BadRequestException { +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); // 配置信息 @@ -137,8 +136,8 @@ public class ZJBZKDDTask extends AbstractTask { } @Override - @Transactional(rollbackFor = Exception.class) - public void updateStatus(String task_code, TaskStatus status) { +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java new file mode 100644 index 0000000..e21d411 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java @@ -0,0 +1,234 @@ +package org.nl.wms.sch.task_manage.task.tasks.ghs; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.config.MapOf; +import org.nl.wms.pdm.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; +import org.nl.wms.sch.task_manage.task.TaskType; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; +import org.nl.wms.util.PointUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: psh + * @Description: 固化室起始站点放满后自动生成搬运到内部的任务,优先级为8 + * @Date: 2023/9/28 + */ +@Slf4j +@Component +@TaskType("GHSFMTask") +public class GHSFMTask extends AbstractTask { + private static String TASK_CONFIG_CODE = "GHSFMTask"; + /** + * 入口 + */ + private static String ENTRANCE = "1"; + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBaseTaskconfigService taskConfigService; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private PointMapper yzMapper; + + @Override +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { + // 获取任务 + List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); + // 找终点 + String extGroupData = task.getExt_group_data(); + JSONObject jsonObject = JSONObject.parseObject(extGroupData); + SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + task.setRemark("未找到所需点位!"); + taskService.update(task); + // 消息通知 + continue; + } + // 设置终点并修改创建成功状态 + task.setPoint_code2(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setRemark(""); + taskService.update(task); + + point.setIng_task_code(task.getTask_code()); + pointService.update(point); + + //下发 +// this.renotifyAcs(task); + } + } + + /** + * 判断是否加急:是->入窑口,否->双层缓存线 + * + * @param nextRegionStr + * @param extGroupData + * @return + */ + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) { + // 需要获取nextRegionStr + if (nextRegionStr.size() < 2) { + throw new BadRequestException("压制送料任务的配置文件有错!"); + } + String regionCode = nextRegionStr.get(0); + // 当前设备的工单 + String workorderCode = extGroupData.getString("workorder_code"); + PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) + : null; + if (one == null) { + throw new BadRequestException("压制机的工单不能为空!"); + } + // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线 + if (one.getIs_urgent()) { + regionCode = nextRegionStr.get(1); // 去窑区 + } + List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject( + MapOf.of("regionCode", regionCode, "pointType", ENTRANCE))); + return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null; + // ?? +// LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); +// lam.eq(SchBasePoint::getRegion_code, regionCode) +// .eq(SchBasePoint::getPoint_type, ENTRANCE) +// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 +// .or() +// .eq(SchBasePoint::getIng_task_code, "")) +// .eq(SchBasePoint::getIs_used, true); +// List schBasePoints = pointService.list(lam); +// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; + } + + @Override +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getById(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 获取参数 + JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) + ? JSONObject.parseObject(taskObj.getExt_group_data()) + : null; + // 载具编码:没有就创建一个 + String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) + ? taskObj.getVehicle_code() + : IdUtil.getSnowflake(1, 1).nextIdStr(); + PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code")) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code"))) + : null; + String startPoint = taskObj.getPoint_code1(); // 获取起点 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint startPointObj = pointService.getById(startPoint); + SchBasePoint endPointObj = pointService.getById(endPoint); + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + } + if (status.equals(TaskStatus.FINISHED)) { // 完成 + // 起点清空 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.clearPoint(startPointObj); + } + // 终点解锁 + endPointObj.setIng_task_code(""); + pointService.update(endPointObj); + // 要把数据存到组盘表 -> 改造公共方法,返回id + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr()); + groupEntity.setCreate_id("2"); + groupEntity.setCreate_name("ACS"); + groupEntity.setCreate_time(DateUtil.now()); + groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getMaterial_id() + : ""); + groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getStanding_time() + : 0); + groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData) + ? extGroupData.getBigDecimal("material_qty") + : BigDecimal.valueOf(0)); + groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getWorkorder_code() + : ""); + groupEntity.setVehicle_code(vehicle_code); + groupEntity.setVehicle_type(taskObj.getVehicle_type()); + groupEntity.setPoint_code(startPoint); + groupEntity.setPoint_name(startPointObj.getPoint_name()); + groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setTask_code(taskObj.getTask_code()); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定 + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 + groupEntity.setIs_delete(false); + vehiclematerialgroupService.save(groupEntity); + + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setGroup_id(groupEntity.getGroup_id()); + taskObj.setRemark("任务完成"); + } + if (status.equals(TaskStatus.CANCELED)) { // 取消 + // 终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + pointService.update(endPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + } + taskService.update(taskObj); + } + + @Override + public void forceFinish(String task_code) { + this.updateStatus(task_code, TaskStatus.FINISHED); + } + + @Override + public void cancel(String task_code) { + this.updateStatus(task_code, TaskStatus.CANCELED); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java new file mode 100644 index 0000000..de04a1b --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java @@ -0,0 +1,234 @@ +package org.nl.wms.sch.task_manage.task.tasks.ghs; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.config.MapOf; +import org.nl.wms.pdm.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; +import org.nl.wms.sch.task_manage.task.TaskType; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; +import org.nl.wms.util.PointUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: psh + * @Description: 固化室通知取货后将十个点位增加到取货队列,固化室发起自动取货任务,当前固化室十个点位取货完毕后通知固化室取货完毕 + * @Date: 2023/9/28 + */ +@Slf4j +@Component +@TaskType("GHSQHTask") +public class GHSQHTask extends AbstractTask { + private static String TASK_CONFIG_CODE = "GHSQHTask"; + /** + * 入口 + */ + private static String ENTRANCE = "1"; + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBaseTaskconfigService taskConfigService; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private PointMapper yzMapper; + + @Override +// @Transactional(rollbackFor = Exception.class) + protected void create() throws BadRequestException { + // 获取任务 + List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); + // 找终点 + String extGroupData = task.getExt_group_data(); + JSONObject jsonObject = JSONObject.parseObject(extGroupData); + SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + task.setRemark("未找到所需点位!"); + taskService.update(task); + // 消息通知 + continue; + } + // 设置终点并修改创建成功状态 + task.setPoint_code2(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setRemark(""); + taskService.update(task); + + point.setIng_task_code(task.getTask_code()); + pointService.update(point); + + //下发 +// this.renotifyAcs(task); + } + } + + /** + * 判断是否加急:是->入窑口,否->双层缓存线 + * + * @param nextRegionStr + * @param extGroupData + * @return + */ + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) { + // 需要获取nextRegionStr + if (nextRegionStr.size() < 2) { + throw new BadRequestException("压制送料任务的配置文件有错!"); + } + String regionCode = nextRegionStr.get(0); + // 当前设备的工单 + String workorderCode = extGroupData.getString("workorder_code"); + PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) + : null; + if (one == null) { + throw new BadRequestException("压制机的工单不能为空!"); + } + // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线 + if (one.getIs_urgent()) { + regionCode = nextRegionStr.get(1); // 去窑区 + } + List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject( + MapOf.of("regionCode", regionCode, "pointType", ENTRANCE))); + return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null; + // ?? +// LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); +// lam.eq(SchBasePoint::getRegion_code, regionCode) +// .eq(SchBasePoint::getPoint_type, ENTRANCE) +// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 +// .or() +// .eq(SchBasePoint::getIng_task_code, "")) +// .eq(SchBasePoint::getIs_used, true); +// List schBasePoints = pointService.list(lam); +// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; + } + + @Override +// @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getById(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 获取参数 + JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) + ? JSONObject.parseObject(taskObj.getExt_group_data()) + : null; + // 载具编码:没有就创建一个 + String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) + ? taskObj.getVehicle_code() + : IdUtil.getSnowflake(1, 1).nextIdStr(); + PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code")) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code"))) + : null; + String startPoint = taskObj.getPoint_code1(); // 获取起点 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint startPointObj = pointService.getById(startPoint); + SchBasePoint endPointObj = pointService.getById(endPoint); + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + } + if (status.equals(TaskStatus.FINISHED)) { // 完成 + // 起点清空 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.clearPoint(startPointObj); + } + // 终点解锁 + endPointObj.setIng_task_code(""); + pointService.update(endPointObj); + // 要把数据存到组盘表 -> 改造公共方法,返回id + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr()); + groupEntity.setCreate_id("2"); + groupEntity.setCreate_name("ACS"); + groupEntity.setCreate_time(DateUtil.now()); + groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getMaterial_id() + : ""); + groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getStanding_time() + : 0); + groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData) + ? extGroupData.getBigDecimal("material_qty") + : BigDecimal.valueOf(0)); + groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getWorkorder_code() + : ""); + groupEntity.setVehicle_code(vehicle_code); + groupEntity.setVehicle_type(taskObj.getVehicle_type()); + groupEntity.setPoint_code(startPoint); + groupEntity.setPoint_name(startPointObj.getPoint_name()); + groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setTask_code(taskObj.getTask_code()); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定 + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 + groupEntity.setIs_delete(false); + vehiclematerialgroupService.save(groupEntity); + + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setGroup_id(groupEntity.getGroup_id()); + taskObj.setRemark("任务完成"); + } + if (status.equals(TaskStatus.CANCELED)) { // 取消 + // 终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + pointService.update(endPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + } + taskService.update(taskObj); + } + + @Override + public void forceFinish(String task_code) { + this.updateStatus(task_code, TaskStatus.FINISHED); + } + + @Override + public void cancel(String task_code) { + this.updateStatus(task_code, TaskStatus.CANCELED); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java similarity index 63% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java index 0dd86cb..56efa0c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java @@ -6,11 +6,11 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; import java.util.List; /** - * @Author: lyd + * @Author: psh * @Description: - * @Date: 2023/6/19 + * @Date: 2023/10/9 */ -public interface YZMapper { - List findPointForYZQL(List regionCode, String materialId); +public interface PointMapper { + List findPointByRegion(String regionCode); List findPointForYZSL(JSONObject param); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml new file mode 100644 index 0000000..8d525fc --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.xml deleted file mode 100644 index caf8fb0..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/YZMapper.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml index f10e4cb..986a2f0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml @@ -1,4 +1,4 @@ -server: +deserver: port: 8010 #配置数据源 spring: diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java index 011d4b1..d48e6a1 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; import org.nl.config.MapOf; import org.nl.system.service.user.ISysUserService; import org.nl.wms.sch.point.service.dao.SchBasePoint; -import org.nl.wms.sch.task_manage.task.tasks.mapper.YZMapper; +import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -21,7 +21,7 @@ public class ApplicationTest { @Autowired private ISysUserService userService; @Autowired - private YZMapper yzMapper; + private PointMapper yzMapper; @Test void contextLoads() { System.out.println(userService.list()); 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 6901c6c..e4bc86a 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -211,7 +211,7 @@ - + @@ -251,11 +251,11 @@ - + @@ -292,7 +292,7 @@ :data="scope.row" :permission="permission" /> - 查看详情 - + --> diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 830015a..4865b33 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -161,8 +161,17 @@ - - + + + + + + + - + - + - + + +