From 82bebd313e3f32b5d8c2846f0152f8eec488e56e Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 18 Jul 2023 15:16:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E4=B8=8Eacs=E5=AF=B9=E6=8E=A5=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-system/doc/wms.xls | Bin 305664 -> 307712 bytes .../notice/impl/SysNoticeServiceImpl.java | 33 +- .../service/IMdBaseMaterialService.java | 2 + .../impl/MdBaseMaterialServiceImpl.java | 20 +- .../org/nl/wms/ext/AcsToWmsController.java | 44 --- .../ext/controller/AcsToWmsController.java | 82 ++++ .../nl/wms/ext/service/AcsToWmsService.java | 28 ++ .../nl/wms/ext/service/WmsToAcsService.java | 9 + .../wms/ext/service/dto/ApplyTaskRequest.java | 38 ++ .../nl/wms/ext/service/dto/BaseRequest.java | 72 ++++ .../nl/wms/ext/service/dto/GrabRequest.java | 80 ++++ .../ext/service/impl/AcsToWmsServiceImpl.java | 370 ++++++++++++++++++ .../ext/service/impl/WmsToAcsServiceImpl.java | 15 + .../wms/ext/service/vo/ApplyTaskResponse.java | 15 + .../nl/wms/ext/service/vo/BaseResponse.java | 80 ++++ .../nl/wms/ext/service/vo/GrabResponse.java | 5 + .../nl/wms/ext/service/vo/StandResponse.java | 21 + .../PdmBdRequestMaterialRecordController.java | 66 ++++ .../IPdmBdRequestMaterialRecordService.java | 43 ++ .../dao/PdmBdRequestMaterialRecord.java | 40 ++ .../PdmBdRequestMaterialRecordMapper.java | 12 + .../PdmBdRequestMaterialRecordMapper.xml | 5 + .../dto/PdmBdRequestMaterialRecordDto.java | 28 ++ .../dto/PdmBdRequestMaterialRecordQuery.java | 12 + ...PdmBdRequestMaterialRecordServiceImpl.java | 65 +++ .../dao/SchBaseVehiclematerialgroup.java | 3 + .../dto/SchBaseVehiclematerialgroupDto.java | 3 + .../sch/point/service/dao/SchBasePoint.java | 6 + .../service/impl/SchBasePointServiceImpl.java | 32 +- .../sch/task/service/ISchBaseTaskService.java | 2 +- .../service/impl/SchBaseTaskServiceImpl.java | 38 +- .../nl/wms/sch/task_manage/AbstractTask.java | 38 +- .../sch/task_manage/GeneralDefinition.java | 31 ++ .../enums/GroupBindMaterialStatusEnum.java | 11 +- .../task_manage/task/tasks/dtk/DTSKTask.java | 129 ++++-- .../task_manage/task/tasks/fj/FJMKTask.java | 14 +- .../task_manage/task/tasks/fj/FJQKTask.java | 2 +- .../task_manage/task/tasks/fj/FJQLTask.java | 118 ++++-- .../task_manage/task/tasks/fj/FJRKTask.java | 15 +- .../task_manage/task/tasks/fj/FJSKTask.java | 103 +++-- .../task/tasks/fj/mapper/FJMapper.xml | 2 + .../task_manage/task/tasks/hn/HNMLTask.java | 170 +++++--- .../task_manage/task/tasks/hn/HNQKTask.java | 332 ++++++++-------- .../task/tasks/hn/mapper/HNMapper.xml | 17 +- .../task_manage/task/tasks/yao/CYZCTask.java | 133 +++++-- .../task_manage/task/tasks/yz/YZQKTask.java | 116 ++++-- .../task_manage/task/tasks/yz/YZQLTask.java | 342 ++++++++-------- .../task_manage/task/tasks/yz/YZSKTask.java | 149 ++++--- .../task_manage/task/tasks/yz/YZSLTask.java | 246 +++++++----- .../java/org/nl/wms/util/CommonUtils.java | 27 ++ .../main/java/org/nl/wms/util/PointUtils.java | 23 ++ .../main/java/org/nl/wms/util/TaskUtils.java | 54 ++- .../test/java/org/nl/point/PointCreate.java | 52 ++- .../src/test/java/org/nl/point/test.java | 61 +++ .../src/views/system/notice/index.vue | 2 +- .../src/views/wms/pdm/record/index.vue | 96 +++++ .../pdm/record/pdmBdRequestMaterialRecord.js | 27 ++ .../src/views/wms/sch/task/config/index.vue | 23 +- .../src/views/wms/sch/task/index.vue | 6 +- 59 files changed, 2745 insertions(+), 863 deletions(-) delete mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/AcsToWmsController.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/controller/PdmBdRequestMaterialRecordController.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.xml create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordDto.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordQuery.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java create mode 100644 lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java create mode 100644 lms/nladmin-ui/src/views/wms/pdm/record/index.vue create mode 100644 lms/nladmin-ui/src/views/wms/pdm/record/pdmBdRequestMaterialRecord.js diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls index 5d713043e28def251478a6091a2896d30f33297a..425daf78748a563f9d9d438794511ca6db006d70 100644 GIT binary patch delta 13020 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 A^8f$< diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java index f41f485..bc89af7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java @@ -36,10 +36,10 @@ import java.util.Set; import java.util.function.Consumer; /** -* @description 服务实现 -* @author lyd -* @date 2023-05-09 -**/ + * @author lyd + * @description 服务实现 + * @date 2023-05-09 + **/ @Slf4j @Service public class SysNoticeServiceImpl extends ServiceImpl implements ISysNoticeService { @@ -54,11 +54,15 @@ public class SysNoticeServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page){ - String notice_title = ObjectUtil.isNotEmpty(whereJson.get("notice_title"))?whereJson.get("notice_title").toString():null; - String notice_type = ObjectUtil.isNotEmpty(whereJson.get("notice_type"))?whereJson.get("notice_type").toString():null; - String have_read = ObjectUtil.isNotEmpty(whereJson.get("have_read"))?whereJson.get("have_read").toString():null; - String deal_status = ObjectUtil.isNotEmpty(whereJson.get("deal_status"))?whereJson.get("deal_status").toString():null; + public IPage queryAll(Map whereJson, PageQuery page) { + String notice_title = ObjectUtil.isNotEmpty(whereJson.get("notice_title")) + ? whereJson.get("notice_title").toString() : null; + String notice_type = ObjectUtil.isNotEmpty(whereJson.get("notice_type")) + ? whereJson.get("notice_type").toString() : null; + String have_read = ObjectUtil.isNotEmpty(whereJson.get("have_read")) + ? whereJson.get("have_read").toString() : null; + String deal_status = ObjectUtil.isNotEmpty(whereJson.get("deal_status")) + ? whereJson.get("deal_status").toString() : null; LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.like(ObjectUtil.isNotEmpty(notice_title), SysNotice::getNotice_title, notice_title) .eq(ObjectUtil.isNotEmpty(notice_type), SysNotice::getNotice_type, notice_type) @@ -95,8 +99,9 @@ public class SysNoticeServiceImpl extends ServiceImpl sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper().eq(SysNotice::getHave_read, NoticeEnum.HAVE_READ_OFF.getValue())); - return ObjectUtil.isNotEmpty(sysNotices)?sysNotices.size():0; + List sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper() + .eq(SysNotice::getHave_read, NoticeEnum.HAVE_READ_OFF.getValue())); + return ObjectUtil.isNotEmpty(sysNotices) ? sysNotices.size() : 0; } @Override @@ -157,10 +162,12 @@ public class SysNoticeServiceImpl extends ServiceImpl sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper().eq(SysNotice::getNotice_title, title)); + List sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper() + .eq(SysNotice::getNotice_title, title) + .eq(SysNotice::getHave_read, NoticeEnum.HAVE_READ_OFF.getValue())); if (ObjectUtil.isNotEmpty(sysNotices)) return; SysNotice noticeDto = SysNotice.builder() - .notice_id(IdUtil.getSnowflake(1,1).nextIdStr()) + .notice_id(IdUtil.getSnowflake(1, 1).nextIdStr()) .notice_type(type) .notice_title(title) .notice_content(msg) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/IMdBaseMaterialService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/IMdBaseMaterialService.java index 05a4f3c..97efc2a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/IMdBaseMaterialService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/IMdBaseMaterialService.java @@ -41,4 +41,6 @@ public interface IMdBaseMaterialService extends IService { * @param ids / */ void deleteAll(Set ids); + + MdBaseMaterial findByCode(String materialCode); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/impl/MdBaseMaterialServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/impl/MdBaseMaterialServiceImpl.java index 725232f..203a339 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/impl/MdBaseMaterialServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/impl/MdBaseMaterialServiceImpl.java @@ -3,7 +3,9 @@ package org.nl.wms.database.material.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -17,6 +19,7 @@ import org.nl.wms.database.material.service.dao.mapper.MdBaseMaterialMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Consumer; @@ -37,11 +40,14 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page){ String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null; - Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) ? Boolean.valueOf(whereJson.get("is_used").toString()) : null; - String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null; + Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) + ? Boolean.valueOf(whereJson.get("is_used").toString()) : null; + String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) + ? whereJson.get("workshop_code").toString() : null; LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.like(ObjectUtil.isNotEmpty(blurry), MdBaseMaterial::getMaterial_code, blurry) - .or(ObjectUtil.isNotEmpty(blurry), l -> l.like(ObjectUtil.isNotEmpty(blurry), MdBaseMaterial::getMaterial_name, blurry)) + .or(ObjectUtil.isNotEmpty(blurry), + l -> l.like(ObjectUtil.isNotEmpty(blurry), MdBaseMaterial::getMaterial_name, blurry)) .eq(ObjectUtil.isNotEmpty(is_used), MdBaseMaterial::getIs_used, is_used) .eq(ObjectUtil.isNotEmpty(workshop_code), MdBaseMaterial::getWorkshop_code, workshop_code); IPage pages = new Page<>(page.getPage() + 1, page.getSize()); @@ -86,4 +92,12 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); + wrapper.lambda().eq(MdBaseMaterial::getMaterial_code, materialCode).eq(MdBaseMaterial::getIs_used, true); + List mdBaseMaterials = mdBaseMaterialMapper.selectList(wrapper); + return mdBaseMaterials.size() > 0 ? mdBaseMaterials.get(0) : null; + } + } 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/AcsToWmsController.java deleted file mode 100644 index b97566c..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/AcsToWmsController.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.nl.wms.ext; - -import cn.dev33.satoken.annotation.SaIgnore; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -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.sch.task.service.ISchBaseTaskService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: acs请求lms接口 - * @Date: 2023/6/16 - */ -@RestController -@Api(tags = "acs请求lms") -@RequestMapping("/api/wms/task") -@Slf4j -@SaIgnore -public class AcsToWmsController { - @Autowired - private ISchBaseTaskService schBaseTaskService; - - @PostMapping("/apply") - @Log("新增任务管理") - @ApiOperation("新增任务管理") - //@SaCheckPermission("@el.check('schBaseTask:add')") - @SaIgnore - public ResponseEntity apply(@RequestBody Map param) { - schBaseTaskService.apply(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/controller/AcsToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java new file mode 100644 index 0000000..79ff55c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java @@ -0,0 +1,82 @@ +package org.nl.wms.ext.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +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.task.service.ISchBaseTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: lyd + * @Description: acs请求lms接口 + * @Date: 2023/6/16 + */ +@RestController +@Api(tags = "acs请求lms") +@RequestMapping("/api/wms") +@Slf4j +@SaIgnore +public class AcsToWmsController { + @Autowired + private ISchBaseTaskService schBaseTaskService; + @Autowired + private AcsToWmsService acsToWmsService; + + @PostMapping("/apply") + @Log("新增任务管理") + @ApiOperation("新增任务管理") + //@SaCheckPermission("@el.check('schBaseTask:add')") + @SaIgnore + public ResponseEntity apply(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.acsApply(param), HttpStatus.OK); + } + + +// @PostMapping("/apply2") +// @Log("新增任务管理") +// @ApiOperation("新增任务管理") +// //@SaCheckPermission("@el.check('schBaseTask:add')") +// @SaIgnore +// public ResponseEntity apply2(@RequestBody Map param) { +// schBaseTaskService.apply(JSONObject.parseObject(JSON.toJSONString(param))); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } + + @PostMapping("/status") + @Log("ACS给WMS反馈任务状态") + @ApiOperation("ACS给WMS反馈任务状态") + @SaIgnore + public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { + return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); + } + + @PostMapping("/pressRequestMaterial") + @Log("压机要料请求") + @ApiOperation("压机要料请求") + //@SaCheckPermission("@el.check('schBaseTask:add')") + @SaIgnore + public ResponseEntity pressRequestMaterial(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.pressRequestMaterial(param), HttpStatus.CREATED); + } + + @PostMapping("/getGroupInfo") + @Log("获取组盘信息") + @ApiOperation("获取组盘信息") + //@SaCheckPermission("@el.check('schBaseTask:add')") + @SaIgnore + public ResponseEntity getGroupInfo(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.getVehicleInfo(param), 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..72a6005 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java @@ -0,0 +1,28 @@ +package org.nl.wms.ext.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.service.vo.BaseResponse; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/6/26 + */ +public interface AcsToWmsService { + /** + * ACS请求压机要料 + * @param param + * @return + */ + BaseResponse pressRequestMaterial(JSONObject param); + + /** ACS反馈 */ + JSONObject receiveTaskStatusAcs(String string); + + /** 获取组盘信息 */ + JSONObject getVehicleInfo(JSONObject param); + + BaseResponse acsApply(JSONObject param); + + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java new file mode 100644 index 0000000..2ce7c26 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java @@ -0,0 +1,9 @@ +package org.nl.wms.ext.service; + +/** + * @Author: lyd + * @Description: Wms请求Acs + * @Date: 2023/6/30 + */ +public interface WmsToAcsService { +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java new file mode 100644 index 0000000..140446c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java @@ -0,0 +1,38 @@ +package org.nl.wms.ext.service.dto; + +import lombok.Data; + +@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; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java new file mode 100644 index 0000000..be168aa --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java @@ -0,0 +1,72 @@ +package org.nl.wms.ext.service.dto; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@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 vehicle_code; + + /** + * 重量 + */ + private String weight; + + /** + * 工单号 + */ + private String order_code; + + /** + * 物料 + */ + private String material_code; + + /** + * 数量 + */ + private String qty; + + /** + * 系统编号 + */ + private String systemCode; + + /** + * 扩展参数:砖型等 + */ + private Map parameters = new HashMap(); + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java new file mode 100644 index 0000000..de9055a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java @@ -0,0 +1,80 @@ +package org.nl.wms.ext.service.dto; + + +import lombok.Data; + +@Data +public class GrabRequest extends BaseRequest { + + /** + * 抓取位 + */ + private String get_station; + + /** + * 放置位 + */ + private String put_station; + + /** + * 激光标刻码 + */ + private String laser_marking_code; + + + /** + * 碾次 + */ + private String grinding_number; + + /** + * 高度1 + */ + private String height1; + + /** + * 高度2 + */ + private String height2; + + /** + * 高度3 + */ + private String height3; + + /** + * 高度4 + */ + private String height4; + + /** + * 宽度1 + */ + private String width1; + + /** + * 宽度2 + */ + private String width2; + + /** + * 长度 + */ + private String len; + + /** + * 体积 + */ + private String volume; + + /** + * 平面度 + */ + private String flatness; + + /** + * 缺陷个数 + */ + private String unqualified_qty; + +} 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..af47536 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java @@ -0,0 +1,370 @@ +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.JSONArray; +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.system.service.notice.ISysNoticeService; +import org.nl.wms.ext.service.AcsToWmsService; +import org.nl.wms.ext.service.dto.ApplyTaskRequest; +import org.nl.wms.ext.service.vo.ApplyTaskResponse; +import org.nl.wms.ext.service.vo.BaseResponse; +import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; +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.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.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.CommonUtils; +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 java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * @Author: lyd + * @Description: acs请求wms的实现类 + * @Date: 2023/6/26 + */ +@Slf4j +@Service +public class AcsToWmsServiceImpl implements AcsToWmsService { + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private IPdmBdRequestMaterialRecordService requestMaterialRecordService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private TaskFactory taskFactory; + @Autowired + private TaskUtils taskUtils; + @Autowired + private ISysNoticeService noticeService; + + @Override + public BaseResponse acsApply(JSONObject param) { + BaseResponse result = new BaseResponse(); + try { + String requestMedthodCode = param.getString("request_medthod_code"); // 获取请求方法名 + if (ObjectUtil.isEmpty(requestMedthodCode)) { + throw new BadRequestException("请求参数错误"); + } + Method method = this.getClass().getMethod(StrUtil.toCamelCase(requestMedthodCode), JSONObject.class); + 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(param.getString("requestNo")); + // 消息通知 + noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("requestNo"), + NoticeTypeEnum.EXCEPTION.getCode()); + } + return result; + } + + /** 任务:申请补满料盅托盘(叫料) */ + public ApplyTaskResponse applyPutFullVehicle(JSONObject param) { + // 找到当前的设备 + String deviceCode = param.getString("device_code"); + SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位错误!"); + } + String requestNo = param.getString("requestNo"); + String configCode = basePoint.getRegion_code() + "QLTask"; + // 组织参数 + param.put("config_code", configCode); + taskService.apply(param); + return ApplyTaskResponse.responseOk(requestNo); + } + + /** 任务:申请补空料盅托盘(叫空盘) */ + public ApplyTaskResponse applyPutEmptyVehicle(JSONObject param) { + // 找到当前的设备 + String deviceCode = param.getString("device_code"); + SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位错误!"); + } + String requestNo = param.getString("requestNo"); + String configCode = basePoint.getRegion_code() + "QKTask"; + // 组织参数 + param.put("config_code", configCode); + taskService.apply(param); + return ApplyTaskResponse.responseOk(requestNo); + } + + /** 任务:申请取走空料盅托盘(送空盘) */ + public ApplyTaskResponse applyTakeEmptyVehicle(JSONObject param) { + // 找到当前的设备 + String deviceCode = param.getString("device_code"); + SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位错误!"); + } + String requestNo = param.getString("requestNo"); + String configCode = basePoint.getRegion_code() + "SKTask"; + // 组织参数 + param.put("config_code", configCode); + taskService.apply(param); + return ApplyTaskResponse.responseOk(requestNo); + } + + /** 任务:申请取走满料盅托盘(入库) */ + public ApplyTaskResponse applyTakeFullVehicle(JSONObject param) { + // 找到当前的设备 + String deviceCode = param.getString("device_code"); + SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位错误!"); + } + String requestNo = param.getString("requestNo"); + String configCode = basePoint.getRegion_code() + "MLTask"; + // 组织参数 + param.put("config_code", configCode); + taskService.apply(param); + return ApplyTaskResponse.responseOk(requestNo); + } + + /** 申请强制取走满料盅托盘(强制入库) */ + public String applyForceTakeFullVehicle(JSONObject param) { + String requestNo = param.getString("requestNo"); + return requestNo; + } + + /** 申请强制满托入缓存 */ + public ApplyTaskResponse applyForceTakeFullVehicleInStorage(JSONObject param) { + // 找到当前的设备 + String deviceCode = param.getString("device_code"); + SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位错误!"); + } + String requestNo = param.getString("requestNo"); + String configCode = basePoint.getRegion_code() + "CZRKTask"; + // 组织参数 + param.put("config_code", configCode); + taskService.apply(param); + return ApplyTaskResponse.responseOk(requestNo); + } + + /** 强制去包装位(半托) 记录不包装 */ + public String forceNoPackage(JSONObject param) { + String requestNo = param.getString("requestNo"); + return requestNo; + } + + /** 申请贴标 */ + public String applyLabelling(JSONObject param) { + String requestNo = param.getString("requestNo"); + return requestNo; + } + + /** 单次放置完成 - 每块砖的信息 */ + public String applyOneGrab(JSONObject param) { + String requestNo = param.getString("requestNo"); + return requestNo; + } + + /** 人工排产确认 */ + public BaseResponse orderVerify(JSONObject param) { // 执行中 + String requestNo = param.getString("requestNo"); + String workorderId = param.getString("workorder_id"); + if (workorderId == null) { + return BaseResponse.responseError(requestNo, "工单标识不能为空!"); + } + PdmBdWorkorder bdWorkorder = workorderService.getById(workorderId); + if (bdWorkorder == null) { + return BaseResponse.responseError(requestNo, "物料信息为空!"); + } + bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode()); + workorderService.update(bdWorkorder); + return BaseResponse.responseOk(requestNo); + } + + /** 工单完成 */ + public BaseResponse orderFinish(JSONObject param) { // 完成 + String requestNo = param.getString("requestNo"); + String workorderId = param.getString("workorder_id"); + if (workorderId == null) { + return BaseResponse.responseError(requestNo, "工单标识不能为空!"); + } + PdmBdWorkorder bdWorkorder = workorderService.getById(workorderId); + if (bdWorkorder == null) { + return BaseResponse.responseError(requestNo, "物料信息为空!"); + } + bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); + workorderService.update(bdWorkorder); + return BaseResponse.responseOk(requestNo); + } + + /** 扫码成功申请 - 判断是否静置完成 */ + public BaseResponse barcodeSuccessApply(JSONObject param) { + String requestNo = param.getString("requestNo"); + BaseResponse standResponse = BaseResponse.build(requestNo); + ApplyTaskRequest baseRequest = param.toJavaObject(ApplyTaskRequest.class); + if (ObjectUtil.isEmpty(baseRequest.getVehicle_code())) { + throw new BadRequestException("载具编码不能为空"); + } + if (ObjectUtil.isEmpty(baseRequest.getVehicle_type())) { + throw new BadRequestException("载具类型不能为空"); + } + // 入库完成要把组盘改成以解绑 + SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() + .eq(SchBaseVehiclematerialgroup::getVehicle_code, baseRequest.getVehicle_code()) + .eq(SchBaseVehiclematerialgroup::getVehicle_type, baseRequest.getVehicle_type()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getIs_delete, false)); + if (ObjectUtil.isEmpty(one)) { + // 返回400,物料不存在 + standResponse.setCode(HttpStatus.HTTP_BAD_REQUEST); + standResponse.setMessage("物料不存在"); + return standResponse; + } + // 判断是否静置完成 + if (CommonUtils.isStandingFinish(one.getInstorage_time(), one.getStanding_time())) { + standResponse.setCode(HttpStatus.HTTP_OK); + standResponse.setMessage("静置完成"); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + taskUtils.setGroupUpdateByAcs(one); + vehiclematerialgroupService.updateById(one); + } else { + standResponse.setCode(HttpStatus.HTTP_BAD_REQUEST); + standResponse.setMessage("静置未完成"); + } + return standResponse; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置) + String requestNo = param.getString("requestNo"); + BaseResponse standResponse = BaseResponse.build(requestNo); + // 压机、原材料物料(混碾)、压机工单、叫料时间 + String deviceCode = param.getString("device_code");// 几号压机下料位 + SchBasePoint basePoint = pointService.getById(deviceCode); + String parentPointCode = basePoint.getParent_point_code(); + // 获取当前正在生产的工单 + PdmBdWorkorder workOrder = workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getPoint_code, parentPointCode) + .eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode()) + .eq(PdmBdWorkorder::getIs_delete, false)); + // todo: 获取原材料物料 + String materialId = workOrder.getMaterial_id(); + PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord(); + requestMaterialRecord.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr()); + requestMaterialRecord.setMaterial_id(materialId); + requestMaterialRecord.setWorkorder_id(workOrder.getWorkorder_id()); + requestMaterialRecord.setDevice_code(parentPointCode); + requestMaterialRecord.setCreate_time(DateUtil.now()); + requestMaterialRecordService.save(requestMaterialRecord); + return standResponse; + } + + @Override + public JSONObject receiveTaskStatusAcs(String string) { + JSONArray array = JSONArray.parseArray(string); + //返回处理失败的任务 + JSONArray errArr = new JSONArray(); + for (int i = 0; i < array.size(); i++) { + JSONObject row = array.getJSONObject(i); + String taskCode = row.getString("task_code"); + if (ObjectUtil.isEmpty(taskCode)) { + throw new BadRequestException("任务编码不能为空!"); + } +// String taskId = row.getString("task_id"); + SchBaseTask taskObj = taskService.getById(taskCode); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("未找到任务编码为 [" + taskCode + "] 的任务"); + } + // 任务处理类 + String processingClass = taskObj.getConfig_code(); + //1:执行中,2:完成 ,3:acs取消 + String acsTaskStatus = row.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(taskCode, status); + } catch (Exception e) { + log.error("任务状态更新失败:{}", message); + JSONObject json = new JSONObject(); + json.put("task_code", taskCode); + json.put("message", message); + errArr.add(json); + } + } + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.HTTP_OK); + result.put("message", "任务状态反馈成功!"); + result.put("data", new JSONObject()); + result.put("errArr", errArr); + return result; + } + + @Override + public JSONObject getVehicleInfo(JSONObject param) { + // 校验组盘信息 + String vehicleCode = param.getString("vehicle_code"); + String vehicleType = param.getString("vehicle_type"); + if (ObjectUtil.isEmpty(vehicleCode)) { + throw new BadRequestException("载具编码为空!"); + } + // 根据载具编码查找组盘信息 -- 查找已绑定的数据 + SchBaseVehiclematerialgroup baseVehiclematerialgroup = vehiclematerialgroupService + .getOne(new LambdaQueryWrapper().eq( + SchBaseVehiclematerialgroup::getGroup_bind_material_status, + GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) + .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)); + JSONObject result = new JSONObject(); + result.put("status", "200"); + result.put("message", "任务状态反馈成功!"); + result.put("data", baseVehiclematerialgroup); + return result; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java new file mode 100644 index 0000000..523fe2a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java @@ -0,0 +1,15 @@ +package org.nl.wms.ext.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext.service.WmsToAcsService; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/6/30 + */ +@Slf4j +@Service +public class WmsToAcsServiceImpl implements WmsToAcsService { +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java new file mode 100644 index 0000000..e131efb --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java @@ -0,0 +1,15 @@ +package org.nl.wms.ext.service.vo; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; + +public class ApplyTaskResponse extends BaseResponse { + 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; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java new file mode 100644 index 0000000..dc06404 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java @@ -0,0 +1,80 @@ +package org.nl.wms.ext.service.vo; + +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 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/vo/GrabResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java new file mode 100644 index 0000000..83804fa --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java @@ -0,0 +1,5 @@ +package org.nl.wms.ext.service.vo; + +public class GrabResponse extends BaseResponse { +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java new file mode 100644 index 0000000..416fa8c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java @@ -0,0 +1,21 @@ +package org.nl.wms.ext.service.vo; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import lombok.Data; + +/** + * @Author: lyd + * @Description: 是否静置完成 + * @Date: 2023/7/14 + */ +@Data +public class StandResponse extends BaseResponse { + private boolean is_success; + + public StandResponse() { + this.setCode(HttpStatus.HTTP_OK); + this.setResponseDate(DateUtil.now()); + this.setMessage("操作成功"); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/controller/PdmBdRequestMaterialRecordController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/controller/PdmBdRequestMaterialRecordController.java new file mode 100644 index 0000000..ca2c04f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/controller/PdmBdRequestMaterialRecordController.java @@ -0,0 +1,66 @@ +package org.nl.wms.pdm.record.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; +/** +* @author lyd +* @date 2023-07-05 +**/ +@Slf4j +@RestController +@Api(tags = "压机提前要料管理") +@RequestMapping("/api/pdmBdRequestMaterialRecord") +public class PdmBdRequestMaterialRecordController { + + @Autowired + private IPdmBdRequestMaterialRecordService pdmBdRequestMaterialRecordService; + + @GetMapping + @Log("查询压机提前要料") + @ApiOperation("查询压机提前要料") + //@SaCheckPermission("@el.check('pdmBdRequestMaterialRecord:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(pdmBdRequestMaterialRecordService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增压机提前要料") + @ApiOperation("新增压机提前要料") + //@SaCheckPermission("@el.check('pdmBdRequestMaterialRecord:add')") + public ResponseEntity create(@Validated @RequestBody PdmBdRequestMaterialRecord entity){ + pdmBdRequestMaterialRecordService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改压机提前要料") + @ApiOperation("修改压机提前要料") + //@SaCheckPermission("@el.check('pdmBdRequestMaterialRecord:edit')") + public ResponseEntity update(@Validated @RequestBody PdmBdRequestMaterialRecord entity){ + pdmBdRequestMaterialRecordService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除压机提前要料") + @ApiOperation("删除压机提前要料") + //@SaCheckPermission("@el.check('pdmBdRequestMaterialRecord:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBdRequestMaterialRecordService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java new file mode 100644 index 0000000..450e4b5 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java @@ -0,0 +1,43 @@ +package org.nl.wms.pdm.record.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2023-07-05 +**/ +public interface IPdmBdRequestMaterialRecordService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(PdmBdRequestMaterialRecord entity); + + /** + * 编辑 + * @param entity / + */ + void update(PdmBdRequestMaterialRecord entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java new file mode 100644 index 0000000..84d5dad --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java @@ -0,0 +1,40 @@ +package org.nl.wms.pdm.record.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-05 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_bd_request_material_record") +public class PdmBdRequestMaterialRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "record_id", type = IdType.NONE) + @ApiModelProperty(value = "要料记录标识") + private String record_id; + + @ApiModelProperty(value = "压机编号") + private String device_code; + + @ApiModelProperty(value = "物料") + private String material_id; + + @ApiModelProperty(value = "工单") + private String workorder_id; + + @ApiModelProperty(value = "叫料时间") + private String create_time; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.java new file mode 100644 index 0000000..c60826d --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.java @@ -0,0 +1,12 @@ +package org.nl.wms.pdm.record.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; + +/** +* @author lyd +* @date 2023-07-05 +**/ +public interface PdmBdRequestMaterialRecordMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.xml new file mode 100644 index 0000000..95bc6cf --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/mapper/PdmBdRequestMaterialRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordDto.java new file mode 100644 index 0000000..ae5228d --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordDto.java @@ -0,0 +1,28 @@ +package org.nl.wms.pdm.record.service.dto; + +import lombok.Data; +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-05 +**/ +@Data +public class PdmBdRequestMaterialRecordDto implements Serializable { + + /** 要料记录标识 */ + private String record_id; + + /** 压机编号 */ + private String device_code; + + /** 物料 */ + private String material_id; + + /** 工单 */ + private String workorder_id; + + /** 叫料时间 */ + private String create_time; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordQuery.java new file mode 100644 index 0000000..a18c96d --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dto/PdmBdRequestMaterialRecordQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.pdm.record.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; + +/** +* @author lyd +* @date 2023-07-05 +**/ +public class PdmBdRequestMaterialRecordQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java new file mode 100644 index 0000000..9c91033 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java @@ -0,0 +1,65 @@ +package org.nl.wms.pdm.record.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService; +import org.nl.wms.pdm.record.service.dao.mapper.PdmBdRequestMaterialRecordMapper; +import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author lyd +* @date 2023-07-05 +**/ +@Slf4j +@Service +public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl implements IPdmBdRequestMaterialRecordService { + + @Autowired + private PdmBdRequestMaterialRecordMapper pdmBdRequestMaterialRecordMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pdmBdRequestMaterialRecordMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(PdmBdRequestMaterialRecord entity) { + String now = DateUtil.now(); + + entity.setRecord_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setCreate_time(now); + pdmBdRequestMaterialRecordMapper.insert(entity); + } + + @Override + public void update(PdmBdRequestMaterialRecord entity) { + PdmBdRequestMaterialRecord dto = pdmBdRequestMaterialRecordMapper.selectById(entity.getRecord_id()); + if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); + pdmBdRequestMaterialRecordMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + pdmBdRequestMaterialRecordMapper.deleteBatchIds(ids); + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java index 9e7d1cb..b40129f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java @@ -50,6 +50,9 @@ public class SchBaseVehiclematerialgroup implements Serializable { @ApiModelProperty(value = "是否满托") private Boolean is_full; + @ApiModelProperty(value = "是否已烧制") + private Boolean is_firing; + @ApiModelProperty(value = "批次") private String pcsn; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupDto.java index 9da91f8..93342fa 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupDto.java @@ -36,6 +36,9 @@ public class SchBaseVehiclematerialgroupDto implements Serializable { /** 是否满托 */ private Boolean is_full; + /** 是否已烧制 */ + private Boolean is_firing; + /** 批次 */ private String pcsn; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java index b2a335f..16356a3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java @@ -141,4 +141,10 @@ public class SchBasePoint implements Serializable { @TableField(exist = false) private String group_id; + @TableField(exist = false) + private String record_id; + + @TableField(exist = false) + private String device_code; + } 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..8498c23 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 @@ -46,14 +46,22 @@ public class SchBasePointServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page){ - String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null; - String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null; - String region_code = ObjectUtil.isNotEmpty(whereJson.get("region_code")) ? whereJson.get("region_code").toString() : null; - String point_type = ObjectUtil.isNotEmpty(whereJson.get("point_type")) ? whereJson.get("point_type").toString() : null; - String point_status = ObjectUtil.isNotEmpty(whereJson.get("point_status")) ? whereJson.get("point_status").toString() : null; - Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) ? Boolean.valueOf(whereJson.get("is_used").toString()) : null; - Boolean lock_type = ObjectUtil.isNotEmpty(whereJson.get("lock_type")) ? Boolean.valueOf(whereJson.get("lock_type").toString()) : false; - Boolean parent_point = ObjectUtil.isNotEmpty(whereJson.get("parent_point")) ? Boolean.valueOf(whereJson.get("parent_point").toString()) : false; + String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) + ? whereJson.get("blurry").toString() : null; + String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) + ? whereJson.get("workshop_code").toString() : null; + String region_code = ObjectUtil.isNotEmpty(whereJson.get("region_code")) + ? whereJson.get("region_code").toString() : null; + String point_type = ObjectUtil.isNotEmpty(whereJson.get("point_type")) + ? whereJson.get("point_type").toString() : null; + String point_status = ObjectUtil.isNotEmpty(whereJson.get("point_status")) + ? whereJson.get("point_status").toString() : null; + Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) + ? Boolean.valueOf(whereJson.get("is_used").toString()) : null; + Boolean lock_type = ObjectUtil.isNotEmpty(whereJson.get("lock_type")) + ? Boolean.valueOf(whereJson.get("lock_type").toString()) : false; + Boolean parent_point = ObjectUtil.isNotEmpty(whereJson.get("parent_point")) + ? Boolean.valueOf(whereJson.get("parent_point").toString()) : false; LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.like(ObjectUtil.isNotEmpty(blurry), SchBasePoint::getPoint_code, blurry) .or(ObjectUtil.isNotEmpty(blurry), lam1 -> lam1.like(SchBasePoint::getPoint_name, blurry)) @@ -68,8 +76,8 @@ public class SchBasePointServiceImpl extends ServiceImpl slam.isNotNull(SchBasePoint::getIng_task_code) .ne(SchBasePoint::getIng_task_code, "")) .orderByAsc(SchBasePoint::getRegion_code) - .orderByAsc(SchBasePoint::getPoint_type) .orderByAsc(SchBasePoint::getPoint_code) + .orderByAsc(SchBasePoint::getPoint_type) .apply(parent_point, "point_code = parent_point_code"); IPage pages = new Page<>(page.getPage() + 1, page.getSize()); pointMapper.selectPage(pages, lam); @@ -84,11 +92,13 @@ public class SchBasePointServiceImpl extends ServiceImpl { /** * 任务申请 - * + * @see org.nl.wms.ext.service.dto.BaseRequest * @param param / */ void apply(JSONObject param); 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..9a722fb 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 @@ -49,13 +49,20 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { - String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null; - String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) ? whereJson.get("vehicle_code").toString() : null; - String point_code = ObjectUtil.isNotEmpty(whereJson.get("point_code")) ? whereJson.get("point_code").toString() : null; - String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString() : null; - String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null; - String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString() : null; - List collect = ObjectUtil.isNotEmpty(more_task_status)?Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()):null; + String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) + ? whereJson.get("task_code").toString() : null; + String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) + ? whereJson.get("vehicle_code").toString() : null; + String point_code = ObjectUtil.isNotEmpty(whereJson.get("point_code")) + ? whereJson.get("point_code").toString() : null; + String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) + ? whereJson.get("begin_time").toString() : null; + String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) + ? whereJson.get("end_time").toString() : null; + String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) + ? whereJson.get("more_task_status").toString() : null; + List collect = ObjectUtil.isNotEmpty(more_task_status) + ? Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()) : null; String unFinished = null; if (collect != null) { if (collect.contains(TaskStatus.UNFINISHED.getCode())) { @@ -171,25 +178,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() + SchBasePoint parentPoint = pointService.getOne(new LambdaQueryWrapper() .eq(SchBasePoint::getPoint_code, pointObj.getParent_point_code())); // 查找当前设备、生产中 PdmBdWorkorder workorder = workorderService.getOne(new LambdaQueryWrapper() - .eq(PdmBdWorkorder::getPoint_code, one.getPoint_code()) + .eq(PdmBdWorkorder::getPoint_code, parentPoint.getPoint_code()) .eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode())); if (ObjectUtil.isEmpty(workorder)) { - throw new BadRequestException("设备" + one.getPoint_code() + "工单未生产!"); + throw new BadRequestException("设备" + parentPoint.getPoint_code() + "工单未生产!"); } - param.put("workorder_code", workorder.getWorkorder_code()); // 静置时间 + param.put("workorder_code", workorder.getWorkorder_code()); // 工单编码 // 设置任务数据 task.setVehicle_type(workorder.getVehicle_type()); } @@ -199,6 +220,7 @@ public abstract class AbstractTask { return; } // 2、创建申请任务 + task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); task.setAcs_trace_id(param.getString("acs_trace_id")); task.setConfig_code(config_code); task.setCreate_mode(param.getString("create_mode")); @@ -208,9 +230,11 @@ public abstract class AbstractTask { task.setWorkshop_code(taskConfig.getWorkshop_code()); // 车间编码 // 设置起/终点 this.setTaskPoint(taskConfig, task, apply_point_code); - task.setExt_group_data(JSONObject.toJSONString(param)); - taskService.create(task); - + // 设置组盘 - 需要的话由子类自行实现 + task.setGroup_id(this.setGroupPlate(param)); + task.setRequest_param(JSONObject.toJSONString(param)); + taskUtils.setCreateByAcs(task); // 设置创建人信息 + taskService.save(task); // 创建一条单点任务。 // 3、判断是否直接找点下发 if (taskConfig.getIs_immediate_create()) { this.create(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java new file mode 100644 index 0000000..feeaa9b --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java @@ -0,0 +1,31 @@ +package org.nl.wms.sch.task_manage; + +/** + * @Author: lyd + * @Description: 通用定义类型数据 + * @Date: 2023/7/13 + */ +public class GeneralDefinition { + // 载具类型 + /** 空料盅 */ + public static final String MATERIAL_CUP = "1"; + /** 钢托盘 */ + public static final String STEEL_TRAY = "2"; + // 账号定义 + /** acs系统 */ + public static final String ACS_ID = "2"; + public static final String ACS_NAME = "ACS系统"; + /** mes系统 */ + public static final String MES_ID = "3"; + public static final String MES_NAME = "MES系统"; + // 点位类型 + /** 设备位 */ + public static final String DEVICE_POINT = "1"; + /** 对接位 */ + public static final String DOCKING_POINT = "2"; + // 出入口 + /**入口**/ + public static final String ENTRANCE = "1"; + /**出口**/ + public static final String EXIT = "2"; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java index 4415856..af5d088 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/GroupBindMaterialStatusEnum.java @@ -17,18 +17,21 @@ import java.util.List; public enum GroupBindMaterialStatusEnum { /** * 待绑定 - */WAIT_BIND, + */ + WAIT_BIND, /** * 已绑定 - */BOUND, + */ + BOUND, /** * 已解绑 - */UNBOUND; + */ + UNBOUND; private String value; private String label; - static { + static { // 只会初始化一次 SysDictServiceImpl bean = SpringContextHolder.getBean(SysDictServiceImpl.class); List taskDirection = bean.list(new LambdaQueryWrapper() .eq(Dict::getCode, "group_bind_material_status") diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java index 79f7030..de485fb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java @@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task.tasks.dtk; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; 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; @@ -10,11 +11,15 @@ 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.GeneralDefinition; +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.TaskFinishedTypeEnum; 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.dtk.mapper.DTKMapper; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -28,9 +33,9 @@ import java.util.stream.Collectors; * @Date: 2023/6/21 */ @Component -@TaskType("DTSKTask") +@TaskType("DTKSKTask") public class DTSKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "DTSKTask"; + private static String TASK_CONFIG_CODE = "DTKSKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -38,7 +43,11 @@ public class DTSKTask extends AbstractTask { @Autowired private ISchBaseTaskconfigService taskConfigService; @Autowired + private ISysNoticeService noticeService; + @Autowired private DTKMapper dtkMapper; + @Autowired + private TaskUtils taskUtils; @Override protected void create() throws BadRequestException { @@ -48,22 +57,29 @@ public class DTSKTask extends AbstractTask { 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()); + taskUtils.setUpdateByAcs(task); + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) + .collect(Collectors.toList()); // 找终点 SchBasePoint point = findNextPoint(nextRegionStr); if (ObjectUtil.isEmpty(point)) { task.setRemark("未找到所需点位!"); - taskService.update(task); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); + task.setVehicle_type(GeneralDefinition.STEEL_TRAY); task.setTask_status(TaskStatus.CREATED.getCode()); - taskService.update(task); + task.setRemark(""); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -85,50 +101,79 @@ public class DTSKTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { // 完成 + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { // 取消 + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 String startPoint = taskObj.getPoint_code1(); // 获取起点 String endPoint = taskObj.getPoint_code2(); // 获取终点 String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; SchBasePoint endPointObj = pointService.getById(endPoint); SchBasePoint startPointObj = pointService.getById(startPoint); - // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 - taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); - taskObj.setRemark("执行中"); + // 设置载具类型、点位状态、释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_type(vehicleType); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); // 设置载具数量 + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + // 起点清空 + PointUtils.clearPoint(startPointObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 设置载具类型、点位状态、释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - endPointObj.setVehicle_type(vehicleType); - endPointObj.setVehicle_qty(endPointObj.getVehicle_qty() + taskObj.getVehicle_qty()); // 设置载具数量 - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - pointService.update(endPointObj); - // 起点清空 - PointUtils.clearPoint(startPointObj); - } - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); - } - if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - pointService.update(endPointObj); - } - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); - taskObj.setRemark("任务取消"); - } - taskService.update(taskObj); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(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); + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.update(endPointObj); + } + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java index 54aac39..c9aa21c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java @@ -13,6 +13,7 @@ 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.GeneralDefinition; 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.task.TaskType; @@ -32,9 +33,9 @@ import java.util.stream.Collectors; * @Date: 2023/6/21 */ @Component -@TaskType("FJMKTask") +@TaskType("FJMLTask") public class FJMKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "FJMKTask"; + private static String TASK_CONFIG_CODE = "FJMLTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -53,8 +54,8 @@ public class FJMKTask extends AbstractTask { for (SchBaseTask task : tasks) { List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); - String extGroupData = task.getExt_group_data();// 任务的其他数据 - JSONObject jsonObject = JSONObject.parseObject(extGroupData); + String requestParam = task.getRequest_param();// 任务的其他数据 + JSONObject jsonObject = JSONObject.parseObject(requestParam); // 找终点 SchBasePoint packagePoint = findNextPoint(nextRegionStr, jsonObject); if (ObjectUtil.isEmpty(packagePoint)) { @@ -114,16 +115,17 @@ public class FJMKTask extends AbstractTask { /** * 从包装线找个位置放货 * @param nextRegionStr - * @param extData + * @param requestParam * @return */ - private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extData) { + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject requestParam) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.in(SchBasePoint::getRegion_code, nextRegionStr) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getPoint_type, GeneralDefinition.DOCKING_POINT) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code); List schBasePoints = pointService.list(lam); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java index 4e5452e..69aadac 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java @@ -26,7 +26,7 @@ import java.util.stream.Collectors; /** * @Author: lyd - * @Description: 分拣呼叫空托盘任务 + * @Description: 分拣呼叫空托盘任务 - 2点 * @Date: 2023/6/21 */ @Component diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java index 57de35a..f6e553e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java @@ -1,11 +1,11 @@ package org.nl.wms.sch.task_manage.task.tasks.fj; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.pdm.service.IPdmBdWorkorderService; import org.nl.wms.pdm.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; @@ -17,11 +17,14 @@ 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.PointStatusEnum; +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.TaskFinishedTypeEnum; 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.fj.mapper.FJMapper; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -49,7 +52,11 @@ public class FJQLTask extends AbstractTask { @Autowired private IPdmBdWorkorderService workorderService; @Autowired + private ISysNoticeService noticeService; + @Autowired private FJMapper fjMapper; + @Autowired + private TaskUtils taskUtils; @Override protected void create() throws BadRequestException { // 获取任务 @@ -58,16 +65,20 @@ public class FJQLTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); + taskUtils.setUpdateByAcs(task); + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) + .collect(Collectors.toList()); // 找起点 - String extGroupDataStr = task.getExt_group_data(); - JSONObject extGroupData = JSONObject.parseObject(extGroupDataStr); + String requestParam = task.getRequest_param(); + JSONObject extGroupData = JSONObject.parseObject(requestParam); extGroupData.put("vehicle_type", task.getVehicle_type()); SchBasePoint point = findStartPoint(startRegionStr, extGroupData); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); + task.setRemark("钢托盘缓存货架没有所需物料!"); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置起点并修改创建成功状态 @@ -75,10 +86,12 @@ public class FJQLTask extends AbstractTask { task.setTask_status(TaskStatus.CREATED.getCode()); task.setVehicle_code(point.getVehicle_code()); task.setGroup_id(point.getGroup_id()); - taskService.update(task); + task.setRemark(""); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -87,18 +100,20 @@ public class FJQLTask extends AbstractTask { /** * 找起点:到钢托盘缓存找一个物料与分拣工单的物料相同的物料 + * 还需要判断是否烧制,选择已经烧制的物料 * @param startRegionStr - * @param extGroupData + * @param requestParam * @return */ - private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { + private SchBasePoint findStartPoint(List startRegionStr, JSONObject requestParam) { // 获取当前工单 - String workorderCode = extGroupData.getString("workorder_code"); + String workorderCode = requestParam.getString("workorder_code"); PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) ? workorderService.getOne(new LambdaQueryWrapper() .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) : null; Assert.notNull(workOrder, "工单不能为空!"); + // 从所选区域中,选择满料位、无锁、可用的点位 List points = fjMapper.findPointForFJQL(startRegionStr, workOrder.getMaterial_id()); return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; } @@ -113,49 +128,74 @@ public class FJQLTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } - // 载具编码:前面需要根据任务判断,没有载具不能生成任务 - String vehicle_code = taskObj.getVehicle_code(); - String startPoint = taskObj.getPoint_code2(); // 获取终点 - SchBasePoint startPointObj = pointService.getById(startPoint); // 根据传来的类型去对任务进行操作 if (status.equals(TaskStatus.EXECUTING)) { // 执行中 taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 除了解锁需要将组盘表中的物料绑定载具设置为已解绑 - // 起点设置空位 - if (ObjectUtil.isNotEmpty(startPointObj)) { - PointUtils.clearPoint(startPointObj); // 执行失败 - SchBaseVehiclematerialgroup vehiclematerialgroup = - vehiclematerialgroupService.getById(taskObj.getGroup_id()); - vehiclematerialgroup.setGroup_bind_material_status("3"); - vehiclematerialgroup.setUpdate_time(DateUtil.now()); - vehiclematerialgroupService.updateById(vehiclematerialgroup); - } - // 任务完成 - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 终点解锁 - if (ObjectUtil.isNotEmpty(startPointObj)) { - startPointObj.setIng_task_code(""); - pointService.update(startPointObj); - } - taskObj.setRemark("任务取消"); - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - taskService.update(taskObj); } @Override public void forceFinish(String task_code) { - this.updateStatus(task_code, TaskStatus.FINISHED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); } @Override public void cancel(String task_code) { - this.updateStatus(task_code, TaskStatus.CANCELED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code1(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 除了解锁需要将组盘表中的物料绑定载具设置为已解绑 + // 起点设置空位 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + SchBaseVehiclematerialgroup vehicleMaterialGroupObj = + vehiclematerialgroupService.getById(taskObj.getGroup_id()); + vehicleMaterialGroupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + taskUtils.setGroupUpdateByType(vehicleMaterialGroupObj, taskFinishedType); + vehiclematerialgroupService.updateById(vehicleMaterialGroupObj); + } + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 终点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJRKTask.java index 90b515f..d1bd220 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJRKTask.java @@ -11,6 +11,7 @@ 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.GeneralDefinition; 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.task.TaskType; @@ -24,13 +25,13 @@ import java.util.stream.Collectors; /** * @Author: lyd - * @Description: 分拣入库任务 - 2点 + * @Description: rgv - 分拣强制入库任务 - 2点 * @Date: 2023/6/21 */ @Component -@TaskType("FJRKTask") +@TaskType("FJQZRKTask") public class FJRKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "FJRKTask"; + private static String TASK_CONFIG_CODE = "FJQZRKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -78,14 +79,20 @@ public class FJRKTask extends AbstractTask { .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getPoint_type, GeneralDefinition.DOCKING_POINT) .eq(SchBasePoint::getIs_used, true); List schBasePoints = pointService.list(lam); return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; } + @Override + public String setGroupPlate(JSONObject param) { + // 强制入库组盘 + return super.setGroupPlate(param); + } + @Override protected void updateStatus(String task_code, TaskStatus status) { - // todo: 组盘 // 校验任务 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/fj/FJSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSKTask.java index d6df606..1433a1e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSKTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.pdm.service.IPdmBdWorkorderService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -13,10 +14,15 @@ 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.GeneralDefinition; +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.TaskFinishedTypeEnum; 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.fj.mapper.FJMapper; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -40,11 +46,11 @@ public class FJSKTask extends AbstractTask { @Autowired private ISchBaseTaskconfigService taskConfigService; @Autowired - private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; - @Autowired - private IPdmBdWorkorderService workorderService; - @Autowired private FJMapper fjMapper; + @Autowired + private TaskUtils taskUtils; + @Autowired + private ISysNoticeService noticeService; @Override protected void create() throws BadRequestException { @@ -54,22 +60,28 @@ public class FJSKTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { + taskUtils.setUpdateByAcs(task); List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); // 找终点 SchBasePoint point = findNextPoint(nextRegionStr); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); + task.setRemark("叠盘架位置不可用!"); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); + task.setVehicle_type(GeneralDefinition.STEEL_TRAY); task.setTask_status(TaskStatus.CREATED.getCode()); - taskService.update(task); + task.setRemark(""); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -96,46 +108,73 @@ public class FJSKTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } - // 获取参数 - String endPoint = taskObj.getPoint_code2(); // 获取终点 - String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; - SchBasePoint endPointObj = pointService.getById(endPoint); // 根据传来的类型去对任务进行操作 if (status.equals(TaskStatus.EXECUTING)) { // 执行中 taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 设置载具类型、点位状态、释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - endPointObj.setVehicle_type(vehicleType); - endPointObj.setVehicle_qty(endPointObj.getVehicle_qty() + 1); // 设置载具数量 - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - pointService.update(endPointObj); - } - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - pointService.update(endPointObj); - } - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); - taskObj.setRemark("任务取消"); + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - taskService.update(taskObj); } @Override public void forceFinish(String task_code) { - this.updateStatus(task_code, TaskStatus.FINISHED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); } @Override public void cancel(String task_code) { - this.updateStatus(task_code, TaskStatus.CANCELED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; + SchBasePoint endPointObj = pointService.getById(endPoint); + // 设置载具类型、点位状态、释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_type(vehicleType); + endPointObj.setVehicle_qty(endPointObj.getVehicle_qty() + 1); // 设置载具数量 + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.update(endPointObj); + } + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml index da2862d..d52d09d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml @@ -11,11 +11,13 @@ WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.is_used = 1 AND p.point_status = '3' + AND vg.is_firing = true AND vg.material_id = #{materialId} AND p.region_code IN #{code} + ORDER BY vg.is_full, p.update_time, p.out_order_seq - SELECT p.* - FROM `sch_base_point` p - LEFT JOIN pdm_bd_workorder w ON w.material_id = #{materialId} AND w.workorder_status = '3' AND w.region_code = - 'YZ' + SELECT + p.*, + r.device_code, + r.create_time, + r.record_id + FROM + `sch_base_point` p + LEFT JOIN pdm_bd_request_material_record r ON r.material_id = #{materialId} WHERE p.point_type = '5' AND p.point_status = '1' - AND p.is_used = 1 - AND p.parent_point_code LIKE CONCAT('%', w.point_code, '%') + AND p.parent_point_code LIKE CONCAT('%', r.device_code, '%') + AND p.is_used = true AND (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.region_code IN #{code} + ORDER BY r.create_time diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java index d2dd9f6..8419584 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java @@ -5,6 +5,9 @@ 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.system.service.notice.ISysNoticeService; +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; @@ -12,11 +15,18 @@ 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.GeneralDefinition; +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.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.TaskType; 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.Component; +import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @@ -29,16 +39,23 @@ import java.util.stream.Collectors; */ @Slf4j @Component -@TaskType("CYZCTask") +@TaskType("GZYMLTask") public class CYZCTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "CYZCTask"; + private static String TASK_CONFIG_CODE = "GZYMLTask"; @Autowired private ISchBasePointService pointService; @Autowired private ISchBaseTaskService taskService; @Autowired private ISchBaseTaskconfigService taskConfigService; + @Autowired + private TaskUtils taskUtils; + @Autowired + private ISysNoticeService noticeService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Override + @Transactional(rollbackFor = Exception.class) protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); @@ -52,20 +69,24 @@ public class CYZCTask extends AbstractTask { JSONObject jsonObject = JSONObject.parseObject(extGroupData); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); + task.setRemark("未找到钢托盘缓存区域空位!"); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 - task.setVehicle_type("2"); // 钢托盘 + task.setVehicle_type(GeneralDefinition.STEEL_TRAY); task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); - taskService.update(task); + taskUtils.setUpdateByAcs(task); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -86,12 +107,14 @@ public class CYZCTask extends AbstractTask { .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) - .eq(SchBasePoint::getIs_used, true); + .eq(SchBasePoint::getIs_used, true) + .orderByAsc(SchBasePoint::getIn_order_seq); 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); @@ -101,48 +124,90 @@ public class CYZCTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } - // 载具编码:前面需要根据任务判断,没有载具不能生成任务 - String vehicle_code = taskObj.getVehicle_code(); - String endPoint = taskObj.getPoint_code2(); // 获取终点 - SchBasePoint endPointObj = pointService.getById(endPoint); + // 根据传来的类型去对任务进行操作 if (status.equals(TaskStatus.EXECUTING)) { // 执行中 taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 终点解锁 - if (ObjectUtil.isNotEmpty(endPointObj)) { - endPointObj.setIng_task_code(""); - endPointObj.setVehicle_code(vehicle_code); - endPointObj.setVehicle_qty(1); - endPointObj.setVehicle_type("2"); - endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); - pointService.update(endPointObj); - } - // 任务完成 - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 终点解锁 - if (ObjectUtil.isNotEmpty(endPointObj)) { - endPointObj.setIng_task_code(""); - pointService.update(endPointObj); - } - taskObj.setRemark("任务取消"); - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - taskService.update(taskObj); } @Override public void forceFinish(String task_code) { - this.updateStatus(task_code, TaskStatus.FINISHED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); } @Override public void cancel(String task_code) { - this.updateStatus(task_code, TaskStatus.CANCELED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 载具编码:前面需要根据任务判断,没有载具不能生成任务 + String vehicle_code = taskObj.getVehicle_code(); + String vehicleType = taskObj.getVehicle_type(); + if (vehicleType == null) { + vehicleType = GeneralDefinition.STEEL_TRAY; + } + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + // 修改组盘信息 - 设置已烧制 + SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() + .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code) + .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, + GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getIs_firing, false)); + one.setIs_firing(true); + taskUtils.setGroupUpdateByType(one, taskFinishedType); + vehiclematerialgroupService.updateById(one); + // 记录库存并解锁 + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_code(vehicle_code); + endPointObj.setVehicle_qty(1); + endPointObj.setVehicle_type(vehicleType); + endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + pointService.update(endPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java index 043743f..1bb3f6d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java @@ -5,6 +5,7 @@ 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.system.service.notice.ISysNoticeService; 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; @@ -12,10 +13,13 @@ 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.PointStatusEnum; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.TaskType; 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.Component; import org.springframework.transaction.annotation.Transactional; @@ -34,16 +38,16 @@ import java.util.stream.Collectors; @TaskType("YZQKTask") public class YZQKTask extends AbstractTask { private static String TASK_CONFIG_CODE = "YZQKTask"; - private static String EMPTY_ZHONG = "1"; - /**碟盘机出口**/ - private static String DISCONNECTING_EXIT = "2"; - @Autowired private ISchBasePointService pointService; @Autowired private ISchBaseTaskService taskService; @Autowired private ISchBaseTaskconfigService taskConfigService; + @Autowired + private ISysNoticeService noticeService; + @Autowired + private TaskUtils taskUtils; @Override @Transactional(rollbackFor = Exception.class) protected void create() { @@ -53,25 +57,30 @@ public class YZQKTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); + taskUtils.setUpdateByAcs(task); // 修改修改者 + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) + .collect(Collectors.toList()); // 找起点 - String extGroupData = task.getExt_group_data(); - JSONObject jsonObject = JSONObject.parseObject(extGroupData); + String requestParam = task.getRequest_param(); + JSONObject jsonObject = JSONObject.parseObject(requestParam); SchBasePoint point = findStartPoint(startRegionStr, jsonObject); if (ObjectUtil.isEmpty(point)) { task.setRemark("未找到所需点位!"); taskService.update(task); // 消息通知 + noticeService.createNotice("未找到所需点位!", TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 task.setPoint_code1(point.getPoint_code()); task.setRemark(""); task.setTask_status(TaskStatus.CREATED.getCode()); - taskService.update(task); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -81,13 +90,13 @@ public class YZQKTask extends AbstractTask { /** * 业务过程:到指定的区域获取空托盘 * @param startRegionStr - * @param extGroupData + * @param requestParam * @return */ - private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { + private SchBasePoint findStartPoint(List startRegionStr, JSONObject requestParam) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.in(SchBasePoint::getRegion_code, startRegionStr) - .eq(SchBasePoint::getPoint_type, DISCONNECTING_EXIT) // 点位类型是拆盘机出口 + lam.in(SchBasePoint::getRegion_code, startRegionStr) // 默认一直都有载具 + .eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT) // 点位类型是拆盘机出口 .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) @@ -106,47 +115,76 @@ public class YZQKTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } - // 获取参数 - 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("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 起点清空 - if (ObjectUtil.isNotEmpty(startPointObj)) { - PointUtils.clearPoint(startPointObj); - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - endPointObj.setVehicle_type("2"); - endPointObj.setVehicle_qty(1); - pointService.update(endPointObj); - } - // 任务完成 - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 起点解锁 - if (ObjectUtil.isNotEmpty(startPointObj)) { - startPointObj.setIng_task_code(""); - pointService.update(startPointObj); - } - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - taskService.update(taskObj); } @Override public void forceFinish(String task_code) { - this.updateStatus(task_code, TaskStatus.FINISHED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); } @Override public void cancel(String task_code) { - this.updateStatus(task_code, TaskStatus.CANCELED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String startPoint = taskObj.getPoint_code1(); // 获取起点 +// String endPoint = taskObj.getPoint_code2(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); +// SchBasePoint endPointObj = pointService.getById(endPoint); + // 起点清空 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); +// endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); +// endPointObj.setVehicle_type("2"); +// endPointObj.setVehicle_qty(1); +// PointUtils.setUpdateByType(endPointObj, taskFinishedType); +// pointService.update(endPointObj); + } + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String startPoint = taskObj.getPoint_code1(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 起点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java index 1a30038..d34d7b9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java @@ -1,171 +1,171 @@ -package org.nl.wms.sch.task_manage.task.tasks.yz; - -import cn.hutool.core.lang.Assert; -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.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.PointStatusEnum; -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.yz.mapper.YZMapper; -import org.nl.wms.util.PointUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @Author: lyd - * @Description: 压制缺料任务 - * @Date: 2023/5/25 - */ -@Slf4j -@Component -@TaskType("YZQLTask") -public class YZQLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "YZQLTask"; - - @Autowired - private ISchBasePointService pointService; - @Autowired - private ISchBaseTaskService taskService; - @Autowired - private ISchBaseTaskconfigService taskConfigService; - @Autowired - private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; - @Autowired - private IPdmBdWorkorderService workorderService; - @Autowired - private YZMapper yzMapper; - - @Override - 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 startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); - // 找起点 - String extGroupData = task.getExt_group_data(); - JSONObject jsonObject = JSONObject.parseObject(extGroupData); - jsonObject.put("vehicle_type", task.getVehicle_type()); - SchBasePoint point = findStartPoint(startRegionStr, jsonObject); - if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); - // 消息通知 - continue; - } - // 设置起点并修改创建成功状态 - task.setPoint_code1(point.getPoint_code()); - task.setTask_status(TaskStatus.CREATED.getCode()); - task.setVehicle_code(point.getVehicle_code()); - taskService.update(task); - - point.setIng_task_code(task.getTask_code()); - pointService.update(point); - - //下发 -// this.renotifyAcs(task); - } - } - - /** - * 找起点业务:混碾机工单的物料标识相同的位置 - * - * @param startRegionStr : 区域列表 - * @param extGroupData : 外部参数,包含条件所需的信息 - * @return - * @description : JSONObject获取不到就是null - */ - private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { - // 获取当前工单 todo: 半托优先 - String workorderCode = extGroupData.getString("workorder_code"); - PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) - ? workorderService.getOne(new LambdaQueryWrapper() - .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) - : null; - Assert.notNull(workOrder, "工单不能为空!"); - // 查找混碾机工单的物料相同的位置 - List points = yzMapper.findPointForYZQL(startRegionStr, workOrder.getMaterial_id()); - return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; - } - - - @Override - 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("该任务已取消!"); - } - // 获取参数 - String startPoint = taskObj.getPoint_code1(); // 起点 - JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) - ? JSONObject.parseObject(taskObj.getExt_group_data()) - : null; - SchBasePoint startPointObj = pointService.getById(startPoint); - // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 - taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); - taskObj.setRemark("执行中"); - } - if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 任务上有载具编码 -> 获取当前载具编码的组盘信息 - SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() - .eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code()) - .eq(SchBaseVehiclematerialgroup::getVehicle_type, taskObj.getVehicle_type()) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); - // 将载具设置为已解绑 - one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); - vehiclematerialgroupService.update(one); - // 释放点位,将点位设置为空位,清空数据 - if (ObjectUtil.isNotEmpty(startPointObj)) { - PointUtils.clearPoint(startPointObj); - // todo: 终点暂时无设置 - } - // 任务修改成完成 - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - } - if (status.equals(TaskStatus.CANCELED)) { // 取消 - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); - // 释放点位,起点正在执行的任务清空 - if (ObjectUtil.isNotEmpty(startPointObj)) { - startPointObj.setIng_task_code(""); - pointService.update(startPointObj); - } - } - 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); - } -} +//package org.nl.wms.sch.task_manage.task.tasks.yz; +// +//import cn.hutool.core.lang.Assert; +//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.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.PointStatusEnum; +//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.yz.mapper.YZMapper; +//import org.nl.wms.util.PointUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//import java.util.Arrays; +//import java.util.List; +//import java.util.stream.Collectors; +// +///** +// * @Author: lyd +// * @Description: 压制缺料任务 +// * @Date: 2023/5/25 +// */ +//@Slf4j +//@Component +//@TaskType("YZQLTask") +//public class YZQLTask extends AbstractTask { +// private static String TASK_CONFIG_CODE = "YZQLTask"; +// +// @Autowired +// private ISchBasePointService pointService; +// @Autowired +// private ISchBaseTaskService taskService; +// @Autowired +// private ISchBaseTaskconfigService taskConfigService; +// @Autowired +// private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; +// @Autowired +// private IPdmBdWorkorderService workorderService; +// @Autowired +// private YZMapper yzMapper; +// +// @Override +// 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 startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); +// // 找起点 +// String extGroupData = task.getExt_group_data(); +// JSONObject jsonObject = JSONObject.parseObject(extGroupData); +// jsonObject.put("vehicle_type", task.getVehicle_type()); +// SchBasePoint point = findStartPoint(startRegionStr, jsonObject); +// if (ObjectUtil.isEmpty(point)) { +// task.setRemark("未找到所需点位!"); +// taskService.update(task); +// // 消息通知 +// continue; +// } +// // 设置起点并修改创建成功状态 +// task.setPoint_code1(point.getPoint_code()); +// task.setTask_status(TaskStatus.CREATED.getCode()); +// task.setVehicle_code(point.getVehicle_code()); +// taskService.update(task); +// +// point.setIng_task_code(task.getTask_code()); +// pointService.update(point); +// +// //下发 +//// this.renotifyAcs(task); +// } +// } +// +// /** +// * 找起点业务:混碾机工单的物料标识相同的位置 +// * +// * @param startRegionStr : 区域列表 +// * @param extGroupData : 外部参数,包含条件所需的信息 +// * @return +// * @description : JSONObject获取不到就是null +// */ +// private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { +// // 获取当前工单 +// String workorderCode = extGroupData.getString("workorder_code"); +// PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) +// ? workorderService.getOne(new LambdaQueryWrapper() +// .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) +// : null; +// Assert.notNull(workOrder, "工单不能为空!"); +// // 查找混碾机工单的物料相同的位置 +// List points = yzMapper.findPointForYZQL(startRegionStr, workOrder.getMaterial_id()); +// return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; +// } +// +// +// @Override +// 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("该任务已取消!"); +// } +// // 获取参数 +// String startPoint = taskObj.getPoint_code1(); // 起点 +// JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) +// ? JSONObject.parseObject(taskObj.getExt_group_data()) +// : null; +// SchBasePoint startPointObj = pointService.getById(startPoint); +// // 根据传来的类型去对任务进行操作 +// if (status.equals(TaskStatus.EXECUTING)) { // 执行中 +// taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); +// taskObj.setRemark("执行中"); +// } +// if (status.equals(TaskStatus.FINISHED)) { // 完成 +// // 任务上有载具编码 -> 获取当前载具编码的组盘信息 +// SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() +// .eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code()) +// .eq(SchBaseVehiclematerialgroup::getVehicle_type, taskObj.getVehicle_type()) +// .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); +// // 将载具设置为已解绑 +// one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); +// vehiclematerialgroupService.update(one); +// // 释放点位,将点位设置为空位,清空数据 +// if (ObjectUtil.isNotEmpty(startPointObj)) { +// PointUtils.clearPoint(startPointObj); +// // todo: 终点暂时无设置 +// } +// // 任务修改成完成 +// taskObj.setTask_status(TaskStatus.FINISHED.getCode()); +// } +// if (status.equals(TaskStatus.CANCELED)) { // 取消 +// taskObj.setTask_status(TaskStatus.CANCELED.getCode()); +// // 释放点位,起点正在执行的任务清空 +// if (ObjectUtil.isNotEmpty(startPointObj)) { +// startPointObj.setIng_task_code(""); +// pointService.update(startPointObj); +// } +// } +// 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/yz/YZSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java index cb16a64..e32fa2d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java @@ -4,9 +4,9 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.system.service.notice.ISysNoticeService; 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; @@ -14,11 +14,18 @@ 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.GeneralDefinition; +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.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.TaskType; 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.Component; +import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @@ -30,9 +37,9 @@ import java.util.stream.Collectors; * @Date: 2023/5/25 */ @Component -@TaskType("YZSKTask") +@TaskType("LZKLXSKTask") public class YZSKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "YZSKTask"; + private static String TASK_CONFIG_CODE = "LZKLXSKTask"; @Autowired private ISchBasePointService pointService; @@ -43,9 +50,12 @@ public class YZSKTask extends AbstractTask { @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired - private IPdmBdWorkorderService workorderService; + private ISysNoticeService noticeService; + @Autowired + private TaskUtils taskUtils; @Override + @Transactional(rollbackFor = Exception.class) protected void create() throws BadRequestException { // 获取任务 List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); @@ -53,24 +63,33 @@ public class YZSKTask extends AbstractTask { 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()); + taskUtils.setUpdateByAcs(task); // 修改修改者 + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) + .collect(Collectors.toList()); // 找终点 - String extGroupData = task.getExt_group_data(); - JSONObject jsonObject = JSONObject.parseObject(extGroupData); + String requestParam = task.getRequest_param(); + JSONObject jsonObject = JSONObject.parseObject(requestParam); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + String vehicleType = jsonObject.getString("vehicle_type"); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); + task.setRemark("送空盅任务未找到混料机空位!"); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); - taskService.update(task); + if (task.getVehicle_type() == null) { + task.setVehicle_type(vehicleType != null ? vehicleType : GeneralDefinition.MATERIAL_CUP); + } + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -78,28 +97,26 @@ public class YZSKTask extends AbstractTask { } /** - * 寻找终点 + * 在混料区域找一个空位放着 * * @param nextRegionStr - * @param extGroupData + * @param requestParam * @return */ - private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) { - String workorderCode = extGroupData.getString("workorder_code"); - PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) - ? workorderService.getOne(new LambdaQueryWrapper() - .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) - : null; - String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type()) - ? workOrder.getVehicle_type() - : null; + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject requestParam) { + String vehicleType = ObjectUtil.isNotEmpty(requestParam.getString("vehicle_type")) + ? requestParam.getString("vehicle_type") + : GeneralDefinition.MATERIAL_CUP; // 载具已经设置可为空,当不需要校验工单时候也不会出现空指针 LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) - .like(vehicleType != null, SchBasePoint::getCan_vehicle_type, vehicleType) + lam.in(SchBasePoint::getRegion_code, nextRegionStr) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .like(SchBasePoint::getCan_vehicle_type, vehicleType) + .eq(SchBasePoint::getPoint_type, GeneralDefinition.DOCKING_POINT) // 对接位 .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getIs_used, true) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code); List schBasePoints = pointService.list(lam); @@ -107,6 +124,7 @@ public class YZSKTask extends AbstractTask { } @Override + @Transactional(rollbackFor = Exception.class) protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 SchBaseTask taskObj = taskService.getById(task_code); @@ -116,49 +134,76 @@ public class YZSKTask extends AbstractTask { if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { throw new BadRequestException("该任务已取消!"); } - // 获取参数 - String endPoint = taskObj.getPoint_code2(); // 获取终点 - String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; - // 获取外部参数 - JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) - ? JSONObject.parseObject(taskObj.getExt_group_data()) - : null; - SchBasePoint endPointObj = pointService.getById(endPoint); // 根据传来的类型去对任务进行操作 if (status.equals(TaskStatus.EXECUTING)) { // 执行中 taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - // 设置载具类型、点位状态、释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - endPointObj.setVehicle_type(vehicleType); - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - pointService.update(endPointObj); - } - taskObj.setTask_status(TaskStatus.FINISHED.getCode()); - taskObj.setRemark("任务完成"); + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } if (status.equals(TaskStatus.CANCELED)) { // 取消 - // 释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { - endPointObj.setIng_task_code(""); - pointService.update(endPointObj); - } - taskObj.setTask_status(TaskStatus.CANCELED.getCode()); - taskObj.setRemark("任务取消"); + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - taskService.update(taskObj); } @Override public void forceFinish(String task_code) { - this.updateStatus(task_code, TaskStatus.FINISHED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); } @Override public void cancel(String task_code) { - this.updateStatus(task_code, TaskStatus.CANCELED); + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) + ? taskObj.getVehicle_type() + : GeneralDefinition.MATERIAL_CUP; + SchBasePoint endPointObj = pointService.getById(endPoint); + // 设置载具类型、点位状态、释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_type(vehicleType); + endPointObj.setVehicle_qty(1); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + pointService.update(endPointObj); + } + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); // 区分完成者 + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 释放点位 + if (ObjectUtil.isNotEmpty(endPoint)) { + endPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java index e7fe2c6..c48025e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java @@ -8,6 +8,7 @@ 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.system.service.notice.ISysNoticeService; import org.nl.wms.pdm.service.IPdmBdWorkorderService; import org.nl.wms.pdm.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; @@ -19,12 +20,13 @@ 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.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.*; 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.yz.mapper.YZMapper; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -41,13 +43,9 @@ import java.util.stream.Collectors; */ @Slf4j @Component -@TaskType("YZSLTask") +@TaskType("YZMLTask") public class YZSLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "YZSLTask"; - /** - * 入口 - */ - private static String ENTRANCE = "1"; + private static String TASK_CONFIG_CODE = "YZMLTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -60,6 +58,10 @@ public class YZSLTask extends AbstractTask { private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Autowired private YZMapper yzMapper; + @Autowired + private TaskUtils taskUtils; + @Autowired + private ISysNoticeService noticeService; @Override @Transactional(rollbackFor = Exception.class) @@ -70,25 +72,30 @@ public class YZSLTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { + taskUtils.setUpdateByAcs(task); // 修改修改者 List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); // 找终点 - String extGroupData = task.getExt_group_data(); - JSONObject jsonObject = JSONObject.parseObject(extGroupData); + String requestParam = task.getRequest_param(); + JSONObject jsonObject = JSONObject.parseObject(requestParam); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.update(task); + task.setRemark("压机[" + task.getPoint_code1() + "]未找到所需点位!"); + taskService.updateById(task); // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), + NoticeTypeEnum.WARN.getCode()); continue; } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); - taskService.update(task); + taskUtils.setUpdateByAcs(task); + taskService.updateById(task); point.setIng_task_code(task.getTask_code()); - pointService.update(point); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); //下发 // this.renotifyAcs(task); @@ -99,17 +106,17 @@ public class YZSLTask extends AbstractTask { * 判断是否加急:是->入窑口,否->双层缓存线 * * @param nextRegionStr - * @param extGroupData + * @param requestParam * @return */ - private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) { + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject requestParam) { // 需要获取nextRegionStr if (nextRegionStr.size() < 2) { throw new BadRequestException("压制送料任务的配置文件有错!"); } String regionCode = nextRegionStr.get(0); // 当前设备的工单 - String workorderCode = extGroupData.getString("workorder_code"); + String workorderCode = requestParam.getString("workorder_code"); PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode) ? workorderService.getOne(new LambdaQueryWrapper() .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) @@ -122,18 +129,8 @@ public class YZSLTask extends AbstractTask { regionCode = nextRegionStr.get(1); // 去窑区 } List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject( - MapOf.of("regionCode", regionCode, "pointType", ENTRANCE))); + MapOf.of("regionCode", regionCode, "pointType", GeneralDefinition.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 @@ -147,89 +144,144 @@ public class YZSLTask extends AbstractTask { 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()) + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + taskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { // 完成 + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { // 取消 + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public String setGroupPlate(JSONObject param) { + // 组盘,返回组盘标识,设置待绑定,搬运结束就设置已绑定 + String vehicleCode = param.getString("vehicle_code"); + if (vehicleCode == null) { + throw new BadRequestException("载具编码不能为空"); + } + String vehicleType = param.getString("vehicle_type"); + String workorderCode = param.getString("workorder_code"); + JSONObject stackParameters = param.getJSONObject("stackParameters"); + if (vehicleType == null) { + vehicleType = GeneralDefinition.STEEL_TRAY; + } + String deviceCode = param.getString("device_code"); + // 砖块数量 + Integer qty = param.getInteger("qty"); + SchBasePoint basePoint = pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, deviceCode) + .eq(SchBasePoint::getIs_used, true)); + PdmBdWorkorder workorderObject = ObjectUtil.isNotEmpty(workorderCode) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) : null; + // 要把数据存到组盘表 + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderObject) + ? workorderObject.getMaterial_id() + : ""); + groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderObject) + ? workorderObject.getStanding_time() + : 0); + groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderObject) + ? workorderObject.getWorkorder_code() + : ""); + groupEntity.setCreate_id(GeneralDefinition.ACS_ID); + groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); + groupEntity.setCreate_time(DateUtil.now()); + groupEntity.setVehicle_code(vehicleCode); + groupEntity.setVehicle_type(vehicleType); + groupEntity.setMaterial_qty(qty); + groupEntity.setSource_vehicle_code(deviceCode); + groupEntity.setPoint_code(basePoint.getPoint_code()); // 哪台压机 + groupEntity.setPoint_name(basePoint.getPoint_name()); + groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.WAIT_BIND.getValue()); // 待绑定 + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 + groupEntity.setIs_delete(false); + vehiclematerialgroupService.save(groupEntity); + return groupEntity.getGroup_id(); + } + + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getById(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + JSONObject extGroupData = JSONObject.parseObject(taskObj.getRequest_param()); // 载具编码:没有就创建一个 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; + ? 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); - } + if (ObjectUtil.isNotEmpty(endPointObj)) { // 终点解锁 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("任务完成"); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); } - 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); + // 起点清空 + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + // 组盘表数据改成已绑定 + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id()); + taskUtils.setGroupUpdateByType(vehiclematerialgroup, taskFinishedType); + vehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + vehiclematerialgroupService.updateById(vehiclematerialgroup); + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("任务完成"); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(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); + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); // 获取终点 + SchBasePoint endPointObj = pointService.getById(endPoint); + // 终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } + taskObj.setRemark("任务取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + taskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java new file mode 100644 index 0000000..77f1e10 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java @@ -0,0 +1,27 @@ +package org.nl.wms.util; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * @Author: lyd + * @Description: 通用工具 + * @Date: 2023/7/17 + */ +public class CommonUtils { + /** + * + * @param inStorageTime 入库时间 + * @param standingTime 静置时间 / 分钟 + * @return + */ + public static boolean isStandingFinish(String inStorageTime, Integer standingTime) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime inStorageDateTime = LocalDateTime.parse(inStorageTime, formatter); + Duration standingDuration = Duration.ofMinutes(standingTime); + LocalDateTime currentTime = LocalDateTime.now(); + LocalDateTime expiryTime = inStorageDateTime.plus(standingDuration); + return currentTime.isAfter(expiryTime); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java index ae2aedf..239b725 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java @@ -2,10 +2,13 @@ package org.nl.wms.util; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.impl.SchBasePointServiceImpl; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; /** * @Author: lyd @@ -45,4 +48,24 @@ public class PointUtils { point.setUpdate_time(DateUtil.now()); pointService.updateById(point); } + + /** 点位修改更新信息 **/ + public static void setUpdateByAcs(SchBasePoint pointObj) { + pointObj.setUpdate_id("2"); + pointObj.setUpdate_name("ACS系统"); + pointObj.setUpdate_time(DateUtil.now()); + } + /** 点位修改更新信息 **/ + public static void setUpdateByPC(SchBasePoint pointObj) { + pointObj.setUpdate_id(SecurityUtils.getCurrentUserId()); + pointObj.setUpdate_name(SecurityUtils.getCurrentNickName()); + pointObj.setUpdate_time(DateUtil.now()); + } + public static void setUpdateByType(SchBasePoint pointObj, TaskFinishedTypeEnum taskFinishedType) { + if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) { + setUpdateByAcs(pointObj); + } else { + setUpdateByPC(pointObj); + } + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index 2fd4b78..c6ee9df 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -1,12 +1,15 @@ package org.nl.wms.util; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.impl.SchBaseTaskServiceImpl; +import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; import org.springframework.beans.factory.annotation.Autowired; @@ -23,19 +26,60 @@ import java.util.function.Consumer; @Component public class TaskUtils { @Autowired - private ISchBaseTaskService taskService; + private ISchBaseTaskService taskService; + + public void setCreateByAcs(SchBaseTask taskObj) { + taskObj.setCreate_id(GeneralDefinition.ACS_ID); + taskObj.setCreate_name(GeneralDefinition.ACS_NAME); + taskObj.setCreate_time(DateUtil.now()); + } public void setUpdateByAcs(SchBaseTask taskObj) { - taskObj.setUpdate_id("2"); - taskObj.setUpdate_name("ACS系统"); + taskObj.setUpdate_id(GeneralDefinition.ACS_ID); + taskObj.setUpdate_name(GeneralDefinition.ACS_NAME); taskObj.setUpdate_time(DateUtil.now()); } + public void setUpdateByPC(SchBaseTask taskObj) { taskObj.setUpdate_id(SecurityUtils.getCurrentUserId()); taskObj.setUpdate_name(SecurityUtils.getCurrentNickName()); taskObj.setUpdate_time(DateUtil.now()); } + public void setGroupUpdateByAcs(SchBaseVehiclematerialgroup groupEntity) { + groupEntity.setUpdate_id(GeneralDefinition.ACS_ID); + groupEntity.setUpdate_name(GeneralDefinition.ACS_NAME); + groupEntity.setUpdate_time(DateUtil.now()); + } + + public void setGroupUpdateByPC(SchBaseVehiclematerialgroup groupEntity) { + groupEntity.setUpdate_id(SecurityUtils.getCurrentUserId()); + groupEntity.setUpdate_name(SecurityUtils.getCurrentNickName()); + groupEntity.setUpdate_time(DateUtil.now()); + } + + // 根据类型去判断谁修改的 + public void setGroupUpdateByType(SchBaseVehiclematerialgroup groupEntity, TaskFinishedTypeEnum taskFinishedType) { + if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) { + setGroupUpdateByAcs(groupEntity); + } else { + setGroupUpdateByPC(groupEntity); + } + } + + + public void setUpdateAuto(SchBaseTask taskObj) { + String currentUserId = ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUserId()) + ? SecurityUtils.getCurrentUserId() + : "2"; + String nickName = ObjectUtil.isNotEmpty(SecurityUtils.getCurrentNickName()) + ? SecurityUtils.getCurrentNickName() + : "ACS系统"; + taskObj.setUpdate_id(currentUserId); + taskObj.setUpdate_name(nickName); + taskObj.setUpdate_time(DateUtil.now()); + } + // 根据类型去判断谁修改的 public void setUpdateByType(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) { @@ -45,7 +89,9 @@ public class TaskUtils { } } - /** 校验是否有起点终点的任务 */ + /** + * 校验是否有起点终点的任务 + */ public Boolean hasTaskAll(String pointCode) { final String code = pointCode; List list = taskService.list(new LambdaQueryWrapper() diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java index 02e4210..4d6c9ca 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java @@ -80,7 +80,7 @@ public class PointCreate { void test03() { // 料盅睏料线区域 // 创建LZKL01 - 32 List pointList = new ArrayList<>(); - for (int i = 1; i <= 12; i++) {// 3台 + for (int i = 13; i <= 32; i++) {// 3台 String pointName = "睏料位"; String pointCode = "KLW"; if (i < 10) { @@ -153,4 +153,54 @@ public class PointCreate { } pointService.saveBatch(pointList); } + @Test + void test05() { // 双层缓存输送线缓存区域 + List pointList = new ArrayList<>(); + for (int i = 1; i <= 40; i++) { + String pointName = "缓存输送线"; + String pointCode = "HCSSX"; + if (i < 10) { + pointName = pointName + "0" + i; + pointCode = pointCode + "0" + i; + } else { + pointName = pointName + i; + pointCode = pointCode + i; + } + SchBasePoint point = new SchBasePoint(); + point.setPoint_code(pointCode); + point.setPoint_name(pointName); + point.setRegion_code("HCSSX"); + point.setRegion_name("双层缓存输送线缓存区域"); + point.setParent_point_code(pointCode); + point.setIs_has_workder(false); + point.setIs_auto(true); + pointList.add(point); + } + pointService.saveBatch(pointList); + } + @Test + void test06() { + List pointList = new ArrayList<>(); + for (int i = 2; i <= 11; i++) { + String pointName = "包装线"; + String pointCode = "BZX"; + if (i < 10) { + pointName = pointName + "0" + i; + pointCode = pointCode + "0" + i; + } else { + pointName = pointName + i; + pointCode = pointCode + i; + } + SchBasePoint point = new SchBasePoint(); + point.setPoint_code(pointCode); + point.setPoint_name(pointName); + point.setRegion_code("BZ"); + point.setRegion_name("包装区域"); + point.setParent_point_code(pointCode); + point.setIs_has_workder(false); + point.setIs_auto(true); + pointList.add(point); + } + pointService.saveBatch(pointList); + } } diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java new file mode 100644 index 0000000..776a0c2 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java @@ -0,0 +1,61 @@ +package org.nl.point; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.junit.jupiter.api.Test; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.sch.region.service.ISchBaseRegionService; +import org.nl.wms.sch.region.service.dao.SchBaseRegion; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/7/12 + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class test { + @Autowired + private ISchBaseRegionService regionService; + + @Test + @Transactional(rollbackFor = Exception.class) + void test01() throws BadRequestException { + SchBaseRegion yz = regionService.getOne(new LambdaQueryWrapper().eq(SchBaseRegion::getRegion_code, "YZ")); + yz.setUpdate_time(DateUtil.now()); + regionService.update(yz); + t2(); + } + + public void t2() { // 异常 + SchBaseRegion e = new SchBaseRegion(); + e.setRegion_code("w"); + e.setRegion_name("w"); + e.setIs_has_workder(true); + e.setOrder_seq(1); + e.setCreate_id("1"); + e.setCreate_time("3"); + regionService.save(e); + } + +// @Test +// void test02() { +// BaseResponse grabResponse = t3(); +// BaseResponse baseResponse = ObjectUtil.cloneByStream(grabResponse); +// System.out.println(baseResponse.hashCode()); +// GrabResponse gg = (GrabResponse) grabResponse; +// System.out.println(gg.hashCode()); +// System.out.println(grabResponse.hashCode()); +// } +// +// public GrabResponse t3() { +// GrabResponse g = new GrabResponse(); +// g.setValue("sss"); +// g.setCode(200); +// System.out.println(g.hashCode()); +// return g; +// } + +} diff --git a/lms/nladmin-ui/src/views/system/notice/index.vue b/lms/nladmin-ui/src/views/system/notice/index.vue index 7c51b10..e490824 100644 --- a/lms/nladmin-ui/src/views/system/notice/index.vue +++ b/lms/nladmin-ui/src/views/system/notice/index.vue @@ -236,10 +236,10 @@ export default { crudNotice.read(record.notice_id).then(() => { record.have_read = '2' this.$bus.emit(NOTICE_MESSAGE_UPDATE) + this.crud.toQuery() }) } this.$bus.emit(NOTICE_SHOW_MESSAGE, record) - this.crud.toQuery() }, hand(value) { this.crud.toQuery() diff --git a/lms/nladmin-ui/src/views/wms/pdm/record/index.vue b/lms/nladmin-ui/src/views/wms/pdm/record/index.vue new file mode 100644 index 0000000..c7e2d94 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/record/index.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/record/pdmBdRequestMaterialRecord.js b/lms/nladmin-ui/src/views/wms/pdm/record/pdmBdRequestMaterialRecord.js new file mode 100644 index 0000000..3443ea2 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/record/pdmBdRequestMaterialRecord.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/pdmBdRequestMaterialRecord', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBdRequestMaterialRecord/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBdRequestMaterialRecord', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/sch/task/config/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/config/index.vue index bac1cb2..c3eeda5 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/config/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/config/index.vue @@ -93,7 +93,18 @@ - + + + - + + + @@ -416,14 +431,14 @@ const defaultForm = { } export default { name: 'TaskConfig', - dicts: ['task_qf_type', 'acs_task_type', 'task_direction'], + dicts: ['task_qf_type', 'acs_task_type', 'task_direction', 'task_type'], components: { pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ title: '任务配置', url: 'api/schBaseTaskconfig', - idField: 'config_code', + idField: 'config_id', sort: 'config_code,desc', optShow: { add: true, 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 dbfd777..218a9e9 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -183,7 +183,7 @@ - + @@ -197,9 +197,9 @@ - + - +