From 956e6c99df8dd77d318c089dfc8a8ad32e237eb0 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 28 Jun 2024 15:13:10 +0800 Subject: [PATCH 1/6] =?UTF-8?q?add=EF=BC=9A=E6=9C=A8=E7=AE=B1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MdpbBoxtypeController.java | 48 +++++ .../database/service/IMdpbBoxtypeService.java | 33 +++ .../database/service/dao/MdpbBoxtype.java | 70 ++++++ .../service/dao/mapper/MdpbBoxtypeMapper.java | 16 ++ .../service/dao/mapper/MdpbBoxtypeMapper.xml | 5 + .../service/impl/MdpbBoxtypeServiceImpl.java | 46 ++++ .../views/wms/basedata/st/boxType/boxtype.js | 27 +++ .../views/wms/basedata/st/boxType/index.vue | 202 ++++++++++++++++++ 8 files changed, 447 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java create mode 100644 lms/nladmin-ui/src/views/wms/basedata/st/boxType/boxtype.js create mode 100644 lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java new file mode 100644 index 000000000..a04a6d31a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java @@ -0,0 +1,48 @@ +package org.nl.b_lms.storage_manage.database.controller; + + +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + *

+ * 木箱规格信息前端控制器 + *

+ * + * @author author + * @since 2024-06-28 + */ +@RestController +@RequestMapping("/api/boxtype") +@Slf4j +public class MdpbBoxtypeController { + + @Autowired + private IMdpbBoxtypeService iMdpbBoxtypeService; + + @GetMapping + @Log("查询木箱类型") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iMdpbBoxtypeService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增木箱类型") + public ResponseEntity query(@Validated @RequestBody MdpbBoxtype dao) { + iMdpbBoxtypeService.create(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java new file mode 100644 index 000000000..2e4d32875 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java @@ -0,0 +1,33 @@ +package org.nl.b_lms.storage_manage.database.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; +import org.nl.common.domain.query.PageQuery; + +import java.util.Map; + +/** + *

+ * 木箱规格信息服务类 + *

+ * + * @author author + * @since 2024-06-28 + */ +public interface IMdpbBoxtypeService extends IService { + + /** + * 分页查询 + * @param whereJson : {查询参数} + * @param pageable : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 新增 + * @param dao : {实体对象} + */ + void create(MdpbBoxtype dao); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java new file mode 100644 index 000000000..e49e33cc3 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java @@ -0,0 +1,70 @@ +package org.nl.b_lms.storage_manage.database.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 木箱规格信息表 + *

+ * + * @author author + * @since 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mdpb_boxtype") +@Builder +public class MdpbBoxtype implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 木箱类型 + */ + @TableId(value = "box_type") + private String box_type; + + /** + * 木箱描述 + */ + private String box_name; + + /** + * 捆扎模版 + */ + private String lash_num; + + /** + * 一次捆扎次数 + */ + private String lash_num_one; + + /** + * 二次捆扎次数 + */ + private String lash_num_tow; + + /** + * 是否一次捆扎 + */ + private String need_lash_one; + + /** + * 是否二次捆扎 + */ + private String need_lash_two; + + /** + * 叉车取货宽度 + */ + private String expend_width; + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.java new file mode 100644 index 000000000..6b0c6d897 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.java @@ -0,0 +1,16 @@ +package org.nl.b_lms.storage_manage.database.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; + +/** + *

+ * 木箱规格信息表Mapper 接口 + *

+ * + * @author author + * @since 2024-06-28 + */ +public interface MdpbBoxtypeMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.xml new file mode 100644 index 000000000..46f06c7d7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/mapper/MdpbBoxtypeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java new file mode 100644 index 000000000..9f36e7c2e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java @@ -0,0 +1,46 @@ +package org.nl.b_lms.storage_manage.database.service.impl; + +import cn.hutool.core.util.ObjectUtil; +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; +import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; +import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbBoxtypeMapper; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.exception.BadRequestException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; + +/** + *

+ * 木箱规格信息服务实现类 + *

+ * + * @author author + * @since 2024-06-28 + */ +@Service +public class MdpbBoxtypeServiceImpl extends ServiceImpl implements IMdpbBoxtypeService { + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() + .lambda()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(MdpbBoxtype dao) { + // 判断当前木箱类型是否存在 + MdpbBoxtype mdpbBoxtype = this.baseMapper.selectById(dao.getBox_type()); + if (ObjectUtil.isNotEmpty(mdpbBoxtype)) { + throw new BadRequestException("当前木箱类型已存在:"+mdpbBoxtype.getBox_type()); + } + this.baseMapper.insert(dao); + } +} diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/boxType/boxtype.js b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/boxtype.js new file mode 100644 index 000000000..b855611e7 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/boxtype.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/boxtype', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/boxtype/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/boxtype', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue new file mode 100644 index 000000000..71f79e4be --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue @@ -0,0 +1,202 @@ + + + + + From 830a523d564354215cd72661bb4de26db6270403 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 28 Jun 2024 16:31:32 +0800 Subject: [PATCH 2/6] =?UTF-8?q?rev=EF=BC=9A=E6=9C=A8=E7=AE=B1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MdpbBoxtypeController.java | 18 +++++++++-- .../database/service/IMdpbBoxtypeService.java | 13 ++++++++ .../database/service/dao/MdpbBoxtype.java | 1 - .../service/impl/MdpbBoxtypeServiceImpl.java | 32 +++++++++++++++++-- .../views/wms/basedata/st/boxType/index.vue | 16 +++++++--- 5 files changed, 69 insertions(+), 11 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java index a04a6d31a..966dbdf24 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/controller/MdpbBoxtypeController.java @@ -8,13 +8,13 @@ import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Map; +import java.util.Set; /** *

@@ -40,9 +40,23 @@ public class MdpbBoxtypeController { @PostMapping @Log("新增木箱类型") - public ResponseEntity query(@Validated @RequestBody MdpbBoxtype dao) { + public ResponseEntity create(@Validated @RequestBody MdpbBoxtype dao) { iMdpbBoxtypeService.create(dao); return new ResponseEntity<>(HttpStatus.OK); } + @PutMapping + @Log("修改木箱类型") + public ResponseEntity update(@Validated @RequestBody MdpbBoxtype dao) { + iMdpbBoxtypeService.update(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping + @Log("删除木箱类型") + public ResponseEntity delete(@RequestBody Set ids) { + iMdpbBoxtypeService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java index 2e4d32875..8a9a206a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/IMdpbBoxtypeService.java @@ -6,6 +6,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.common.domain.query.PageQuery; import java.util.Map; +import java.util.Set; /** *

@@ -30,4 +31,16 @@ public interface IMdpbBoxtypeService extends IService { * @param dao : {实体对象} */ void create(MdpbBoxtype dao); + + /** + * 修改 + * @param dao: {实体对象} + */ + void update(MdpbBoxtype dao); + + /** + * 删除 + * @param ids : {集合} + */ + void delete(Set ids); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java index e49e33cc3..40c04a156 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/MdpbBoxtype.java @@ -20,7 +20,6 @@ import java.io.Serializable; @Data @EqualsAndHashCode(callSuper = false) @TableName("mdpb_boxtype") -@Builder public class MdpbBoxtype implements Serializable { private static final long serialVersionUID = 1L; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java index 9f36e7c2e..48b3ae669 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/MdpbBoxtypeServiceImpl.java @@ -1,6 +1,8 @@ package org.nl.b_lms.storage_manage.database.service.impl; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +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; @@ -10,11 +12,11 @@ import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbBoxtypeMapper; import org.nl.common.domain.query.PageQuery; import org.nl.modules.common.exception.BadRequestException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Map; +import java.util.Set; /** *

@@ -29,8 +31,21 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { - return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() - .lambda()); + // 查询条件 + LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda(); + String box_type = MapUtil.getStr(whereJson, "box_type"); + String box_name = MapUtil.getStr(whereJson, "box_name"); + + if (ObjectUtil.isNotEmpty(box_type)) { + queryWrapper.likeRight(MdpbBoxtype::getBox_type, box_type); + } + if (ObjectUtil.isNotEmpty(box_name)) { + queryWrapper.likeRight(MdpbBoxtype::getBox_name, box_name); + } + + return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), + queryWrapper + ); } @Override @@ -43,4 +58,15 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl ids) { + this.baseMapper.deleteBatchIds(ids); + } } diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue index 71f79e4be..789530795 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/boxType/index.vue @@ -46,12 +46,12 @@ - + - + @@ -113,8 +113,8 @@ - - + + Date: Sat, 29 Jun 2024 09:21:25 +0800 Subject: [PATCH 3/6] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E7=AD=89=E5=BE=85=E7=9A=84=E6=A1=81=E6=9E=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BstIvtPackageinfoivtServiceImpl.java | 96 +++++++++++--- .../sch/tasks/first_floor_area/DjqTask.java | 5 +- .../first_floor_area/DjqToKzjhcwTask.java | 4 +- .../sch/tasks/first_floor_area/GzqTask.java | 8 +- .../first_floor_area/GzqToKzjhcwTask.java | 2 + .../sch/tasks/first_floor_area/MzhcwTask.java | 2 + .../first_floor_area/SendDjqKzjTask.java | 4 +- .../first_floor_area/SendGzqKzjTask.java | 4 +- .../tasks/first_floor_area/SsxDjwTask.java | 12 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 2 + .../sch/tasks/first_floor_area/ZxqTask.java | 2 + .../auto/AutoExecuteWaitTask.java | 119 ++++++++++++++++++ .../auto/AutoSendVehicleToDjq.java | 6 +- .../auto/AutoSendVehicleToKzj.java | 22 +++- 14 files changed, 251 insertions(+), 37 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index d37128fff..cc13cd586 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -56,10 +56,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - .eq(BstIvtPackageinfoivt::getPoint_status, ivtType) - .eq(BstIvtPackageinfoivt::getIvt_status, ivtStatus); + .eq(BstIvtPackageinfoivt::getPoint_status, ivtType); + if (StringUtils.isNotEmpty(ivtStatus)) { + queryWrapper.eq(BstIvtPackageinfoivt::getIvt_status, ivtStatus); + } if (PackageInfoIvtEnum.SORT_TYPE.code("升序").equals(sortType)) { queryWrapper.orderByAsc(BstIvtPackageinfoivt::getSort_seq); } else if (PackageInfoIvtEnum.SORT_TYPE.code("降序").equals(sortType)) { @@ -239,6 +241,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() @@ -247,7 +250,51 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || + baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) + ) { + //是否有执行中的行架任务,有就分配行架搬运起点 + List taskList = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .and( + r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)") + ))); + if (CollectionUtils.isNotEmpty(taskList)) { + if (taskList.get(0).getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) { + newPoint.setPoint_code(taskList.get(0).getPoint_code3()); + } else { + newPoint.setPoint_code(taskList.get(0).getPoint_code1()); + } + } else { + //newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask); + newPoint = checkIvtSBlock(); + } + } else { + newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask); + } + if (StringUtils.isNotBlank(newPoint.getPoint_code())) { + //更新任务起点或终点 + if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) { + baseTask.setPoint_code1(newPoint.getPoint_code()); + if (StringUtils.isNotBlank(newPoint.getContainer_name())) { + //更新子卷号 + baseTask.setVehicle_code(newPoint.getContainer_name()); + } + } else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) { + baseTask.setPoint_code2(newPoint.getPoint_code()); + } + taskService.updateById(baseTask); + return newPoint.getPoint_code(); + } else { + throw new BadRequestException("点位外层有载具阻挡或暂无点位资源!"); + } + } + private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) { + BstIvtPackageinfoivt newPoint; //1取货任务2放货任务 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) { @@ -264,23 +311,34 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); + if (CollectionUtils.isEmpty(kzjIvtList)) { + return newPoint; } + boolean hasEmptyVehicle = true; + Optional emptyList = kzjIvtList.stream() + .filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) + .findFirst(); + //判断点位外层是否有空载具 + if (emptyList.isPresent()) { + BigDecimal sortSeq = emptyList.get().getSort_seq(); + hasEmptyVehicle = kzjIvtList.stream() + .anyMatch(r -> r.getSort_seq().compareTo(sortSeq) < 0 && + r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); + } + if (hasEmptyVehicle) { + return newPoint; + } + return emptyList.get(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index 9f19034cd..8b52b24a0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -139,7 +139,7 @@ public class DjqTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -199,7 +199,7 @@ public class DjqTask extends AbstractAcsTask { public void sendDjqToZxq(SchBaseTask schBaseTask) { //装箱区有空位 - List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "",""); + List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { Map> ivtList = bstIvtPackageinfoivtList.stream() .collect(Collectors.groupingBy( @@ -232,6 +232,7 @@ public class DjqTask extends AbstractAcsTask { throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java index 0d5625916..9148f4bd0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java @@ -132,6 +132,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -210,6 +211,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { throw new BadRequestException("待检区->空载具缓存位取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); @@ -294,4 +296,4 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { // this.createTask(toKzjHcwTask); // } // } - } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 7e2097f9e..b06477809 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -1,4 +1,5 @@ package org.nl.b_lms.sch.tasks.first_floor_area; + import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.BooleanUtil; @@ -26,6 +27,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -83,7 +85,7 @@ public class GzqTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false); + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (schBaseTask == null) { throw new BadRequestException("满轴缓存位 -> 管制区完成接口任务号为空!"); } @@ -125,6 +127,7 @@ public class GzqTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -194,8 +197,6 @@ public class GzqTask extends AbstractAcsTask { } - - @Override public void cancel(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() @@ -204,6 +205,7 @@ public class GzqTask extends AbstractAcsTask { throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index 6d1d6db3e..d759f3d77 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -132,6 +132,7 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -210,6 +211,7 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { throw new BadRequestException("管制区->空载具缓存位取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index f92fcf7e6..6e8be3d7a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -158,6 +158,7 @@ public class MzhcwTask extends AbstractAcsTask { } // 更新任务表删除字段 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -360,6 +361,7 @@ public class MzhcwTask extends AbstractAcsTask { throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java index 4935afadb..ca82aa828 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java @@ -102,6 +102,7 @@ public class SendDjqKzjTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -132,7 +133,7 @@ public class SendDjqKzjTask extends AbstractAcsTask { boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send")); SchBaseTaskVO schBaseTaskVo = SchBaseTaskVO.builder() .task_type(taskType) - .vehicle_code(vehicleCode) + .vehicle_code(vehicleCode) .vehicle_code2(form.getString("vehicle_code2")) .point_code1(pointCode1) .point_code2(pointCode2) @@ -180,6 +181,7 @@ public class SendDjqKzjTask extends AbstractAcsTask { throw new BadRequestException("装箱区->待检区送空载具取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 7278fd2e4..6760a885c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -102,6 +102,7 @@ public class SendGzqKzjTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -132,7 +133,7 @@ public class SendGzqKzjTask extends AbstractAcsTask { boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send")); SchBaseTaskVO schBaseTaskVo = SchBaseTaskVO.builder() .task_type(taskType) - .vehicle_code(vehicleCode) + .vehicle_code(vehicleCode) .vehicle_code2(form.getString("vehicle_code2")) .point_code1(pointCode1) .point_code2(pointCode2) @@ -180,6 +181,7 @@ public class SendGzqKzjTask extends AbstractAcsTask { throw new BadRequestException("装箱区->管制区送空载具取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 085e9cf44..1919b7243 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -1,4 +1,5 @@ package org.nl.b_lms.sch.tasks.first_floor_area; + import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.BooleanUtil; @@ -24,6 +25,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -49,9 +51,6 @@ public class SsxDjwTask extends AbstractAcsTask { private IbstIvtPackageinfoivtService packageinfoivtService; - - - @Override public List addTask() { ArrayList resultList = new ArrayList<>(); @@ -83,7 +82,7 @@ public class SsxDjwTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false); + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (schBaseTask == null) { throw new BadRequestException("空载具缓存位 -> 输送线完成接口任务号为空!"); } @@ -120,7 +119,9 @@ public class SsxDjwTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -192,11 +193,12 @@ public class SsxDjwTask extends AbstractAcsTask { @Override public void cancel(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() - .eq(SchBaseTask::getTask_id, taskId), false) ; + .eq(SchBaseTask::getTask_id, taskId), false); if (schBaseTask == null) { throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 7fbd68e39..13f4c9b17 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -151,6 +151,7 @@ public class ZxDjwTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setRemark("任务被强制取消,不执行任何逻辑!"); } schBaseTask.setUpdate_time(DateUtil.now()); @@ -231,6 +232,7 @@ public class ZxDjwTask extends AbstractAcsTask { throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 69095c5a3..f790ee32c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -144,6 +144,7 @@ public class ZxqTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); } schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -303,6 +304,7 @@ public class ZxqTask extends AbstractAcsTask { throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!"); } schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setUpdate_time(DateUtil.now()); schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java new file mode 100644 index 000000000..8b4ee434d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java @@ -0,0 +1,119 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; +import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask; +import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoExecuteWaitTask { + + @Resource + private MzhcwTask mzhcwTask; + + @Resource + private SsxDjwTask ssxDjwTask; + @Resource + private IschBaseTaskService taskService; + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + + //自动执行等待的桁架任务 + public void run() { + this.executeWaitTask(); + } + + + /** + * 放满与取空桁架任务 + */ + void executeWaitTask() { + List taskList = taskService.list( + new LambdaQueryWrapper() + .or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) + .and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")))) + .or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + .and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")))) + ); + for (SchBaseTask task : taskList) { + if (task != null) { + String taskType = task.getTask_type(); + if (PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)").equals(taskType)) { + List kzjPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用") + ).eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + if (CollectionUtils.isEmpty(kzjPointList)) { + return; + } + List existTaskList = getExistTasks(taskType, task.getVehicle_code()); + if (existTaskList.size() > 1) { + throw new BadRequestException("存在多个子卷号相同的任务!"); + } + task.setPoint_code1(kzjPointList.get(0).getPoint_code()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(task); + ssxDjwTask.immediateNotifyAcs(null); + } else if (PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位").equals(taskType)) { + List mzPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用") + ).eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")) + .orderByDesc(BstIvtPackageinfoivt::getSort_seq)); + if (CollectionUtils.isEmpty(mzPointList)) { + return; + } + //校验相同是否存在相同子卷号任务 + List existTaskList = getExistTasks(taskType, task.getVehicle_code()); + //如果有就不创建,没有就创建 + if (existTaskList.size() > 1) { + throw new BadRequestException("存在多个子卷号相同的任务!"); + } + task.setPoint_code2(mzPointList.get(0).getPoint_code()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(task); + mzhcwTask.immediateNotifyAcs(null); + } + } + } + } + + //校验相同子卷号的任务 + private List getExistTasks(String taskType, String containerName) { + String startTime = LocalDate.now().atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + return taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_type, taskType) + .eq(SchBaseTask::getVehicle_code, containerName) + .gt(SchBaseTask::getCreate_time, startTime) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + + ); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java index c9e66425d..e015994d1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java @@ -42,19 +42,19 @@ public class AutoSendVehicleToDjq { //存在装箱区有空载具的点位 String pointCode2 = null; JSONObject task = new JSONObject(); - List zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"), "", ""); + List zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); if (CollectionUtils.isEmpty(zxqIvtList)) { return; } //待检区有空位且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); + List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) { pointCode2 = djqPackageinfoivtList.get(0).getPoint_code(); task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); } else { //管制区有空位 - List gzqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + List gzqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); if (CollectionUtils.isNotEmpty(gzqList)) { pointCode2 = gzqList.get(0).getPoint_code(); task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java index 7fef83cd6..7bb4474f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java @@ -12,7 +12,11 @@ import org.nl.common.enums.PackageInfoIvtEnum; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; @@ -72,10 +76,24 @@ public class AutoSendVehicleToKzj { //存在空载具缓存位无空载具的点位 String pointCode1 = null; JSONObject task = new JSONObject(); - List kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"), "", ""); + List kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); if (CollectionUtils.isEmpty(kzjIvtList)) { return; } + boolean hasEmptyVehicle = true; + Optional emptyList = kzjIvtList.stream() + .filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) + .findFirst(); + //判断点位外层是否有空载具 + if (emptyList.isPresent()) { + BigDecimal sortSeq = emptyList.get().getSort_seq(); + hasEmptyVehicle = kzjIvtList.stream() + .anyMatch(r -> r.getSort_seq().compareTo(sortSeq) < 0 && + r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); + } + if (hasEmptyVehicle) { + return; + } //待检区有空载具且过滤未完成任务 List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) { @@ -95,7 +113,7 @@ public class AutoSendVehicleToKzj { if (pointCode1 != null) { task.put("point_code1", pointCode1); //送空二次分配,目标点分配等待点 - task.put("point_code4", kzjIvtList.get(0).getPoint_code()); + task.put("point_code4", emptyList.get().getPoint_code()); task.put("point_code2", packageinfoivtService.getWaitPoint(kzjIvtList.get(0).getBlock(), kzjIvtList.get(0).getWait_point_type())); if (task.getString("task_type").equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))) { djqToKzjhcwTask.createTask(task); From d851b6c6ba0476af65ef65be6fba7909967bb032 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Sat, 29 Jun 2024 14:10:32 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=E5=A4=87=E8=B4=A7=E5=8C=BA=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IPdmBiSlittingproductionplanService.java | 7 +++++ ...dmBiSlittingproductionplanServiceImpl.java | 7 +++++ .../slitter/auto/AutoCallAirShaftTask.java | 19 ++++++------ .../service/impl/SlitterServiceImpl.java | 31 ++++++++++++++++--- 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java index b62a1608c..42aa1309e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java @@ -70,4 +70,11 @@ public interface IPdmBiSlittingproductionplanService extends IService getAllHalfPlan(List qzzs); + + /** + * 根据子卷获取分切 + * @param containerName 子卷 + * @return / + */ + PdmBiSlittingproductionplan getByContainerName(String containerName); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java index 8f05ce315..1598433e1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -104,5 +104,12 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(PdmBiSlittingproductionplan::getContainer_name, containerName); + return pdmBiSlittingproductionplanMapper.selectOne(lam); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 3f1ad4eec..3bce7b377 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -243,15 +243,6 @@ public class AutoCallAirShaftTask { // 找一个点位: 目的需要的点位 BstIvtStockingivt needPoint = stockingivtList.get(0); // 找到就创建AGV搬运任务 - // 查找一个没有任务的空位 - List list = stockingivtService.getEmptyPointNotTask(location, "0"); - if (list.size() == 0) { - noticeService.createNotice("备货区找不到空位置搬运", - "点位[" + empty.getPoint_name() + "]无法从备货区找到空位", - NoticeTypeEnum.EXCEPTION.getCode()); - return; - } - BstIvtStockingivt endPoint = list.get(0); // 筛选3个位置中数量最少的搬走 BstIvtStockingivt needMovePoint = stockingivtService.getCanMovePointOne(location, "1"); // 空位就直接创建搬过来的任务 @@ -261,6 +252,7 @@ public class AutoCallAirShaftTask { param.put("point_code1", needPoint.getPoint_code()); param.put("point_code2", needMovePoint.getPoint_code()); param.put("vehicle_code", needPoint.getVehicle_code()); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送纸管")); // 存储纸管信息 List paperList = mdPbPapervehicleService.list(new LambdaQueryWrapper() @@ -269,6 +261,15 @@ public class AutoCallAirShaftTask { stockAreaCallTubeTask.createTask(param); return; } + // 查找一个没有任务的空位 + List list = stockingivtService.getEmptyPointNotTask(location, "0"); + if (list.size() == 0) { + noticeService.createNotice("备货区找不到空位置搬运", + "点位[" + empty.getPoint_name() + "]无法从备货区找到空位", + NoticeTypeEnum.EXCEPTION.getCode()); + return; + } + BstIvtStockingivt endPoint = list.get(0); // 创建任务 -> HINT: 在此任务完成之后会调用搬回来的任务,因此任务中要记录需要搬运的点位放在任务请求参数中。 JSONObject param = new JSONObject(); param.put("point_code1", needMovePoint.getPoint_code()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 4988af4c0..6005d5ccf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -840,6 +840,9 @@ public class SlitterServiceImpl implements SlitterService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject acsActionFinishRequestToRelease(JSONObject param) { + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.HTTP_OK); + result.put("message", "反馈取货成功!"); String taskCode = param.getString("task_code"); if (ObjectUtil.isEmpty(taskCode)) { throw new BadRequestException("ACS二楼请求取货完成失败,任务号不能为空!"); @@ -848,6 +851,11 @@ public class SlitterServiceImpl implements SlitterService { // 起点释放 String startPoint = task.getPoint_code1(); BstIvtCutpointivt startPointObj = bcutpointivtService.getPintByAgvCode(startPoint, false); + if (ObjectUtil.isEmpty(startPointObj)) { + log.error("BstIvtCutpointivt-任务{}起点不存在,放行", taskCode); + result.put("message", "不更新库存,放行!"); + return result; + } startPointObj.setPoint_status("1"); startPointObj.setQzz_no1(""); startPointObj.setQzz_no2(""); @@ -856,9 +864,6 @@ public class SlitterServiceImpl implements SlitterService { task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode()); TaskUtils.updateOptMessageByTask(task); taskService.updateById(task); - JSONObject result = new JSONObject(); - result.put("status", HttpStatus.HTTP_OK); - result.put("message", "反馈取货成功!"); return result; } @@ -976,7 +981,25 @@ public class SlitterServiceImpl implements SlitterService { @Override public JSONObject slitterSpliceOperation(JSONObject param) { - // todo: + // param:OutsideContainerName 、 InsideContainerName、CarrierStatus + String outsideContainerName = param.getString("OutsideContainerName"); + String insideContainerName = param.getString("InsideContainerName"); + String carrierStatus = param.getString("CarrierStatus"); + if (SlitterConstant.SLITTER_NO.equals(carrierStatus)) { + // 不下卷需要修改。 + PdmBiSlittingproductionplan outPlan = slittingproductionplanService.getByContainerName(outsideContainerName); + PdmBiSlittingproductionplan inPlan = slittingproductionplanService.getByContainerName(insideContainerName); + outPlan.setQzzno(inPlan.getQzzno()); + outPlan.setStatus(inPlan.getStatus()); + outPlan.setIs_child_tz_ok(inPlan.getIs_child_tz_ok()); + outPlan.setIs_paper_ok(inPlan.getIs_paper_ok()); + TaskUtils.updateOptMessageBySlitterPlan(outPlan); + inPlan.setQzzno(inPlan.getQzzno() + "拼接"); + inPlan.setStatus("09"); + TaskUtils.updateOptMessageBySlitterPlan(outPlan); + List collect = Stream.of(outPlan, inPlan).collect(Collectors.toList()); + slittingproductionplanService.updateBatchById(collect); + } return null; } } From c79bd1a186a4e2c7dd7b700539d54e2c5ff9f346 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sat, 29 Jun 2024 15:49:55 +0800 Subject: [PATCH 5/6] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E5=88=86=E9=85=8D=E8=AF=B7=E6=B1=82=E9=A2=91=E7=B9=81=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 9 ++--- .../impl/BstIvtPackageinfoivtServiceImpl.java | 34 +++++++++++++++---- .../sch/tasks/first_floor_area/DjqTask.java | 7 ++++ .../sch/tasks/first_floor_area/ZxqTask.java | 14 ++++---- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 6b3966b33..3e4968830 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -20,6 +21,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.tasks.first_floor_area.*; import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueueManager; import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueue; +import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; @@ -30,6 +32,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.modules.common.exception.BadRequestException; import org.nl.system.service.param.ISysParamService; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -62,7 +65,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl 装箱对接位,木箱码不能为空!"); - } //更新及子卷包装状态已分配规格及木箱规格组 CompletableFuture.runAsync(() -> { try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index cc13cd586..38d81efcc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.apache.commons.collections4.CollectionUtils; @@ -241,8 +242,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() .eq(SchBaseTask::getTask_code, taskCode) @@ -250,6 +249,18 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) @@ -286,6 +297,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() - .setSql("ivt_status = '0', container_name = null") - .eq("point_code", baseTask.getPoint_code1())); - + List ivtList = packageinfoivtService.list(new LambdaQueryWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code1())); + if (CollectionUtils.isEmpty(ivtList)) { + throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "取货完成的目标点位不存在!"); + } + //只有子卷号相同才能清除库存 + if (baseTask.getVehicle_code().equals(ivtList.get(0).getContainer_name())) { + //清空起点库存状态 + bstIvtPackageinfoivtMapper.update(null, new UpdateWrapper() + .setSql("ivt_status = '0', container_name = null") + .eq("point_code", baseTask.getPoint_code1())); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index 8b52b24a0..eeccfe140 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -93,6 +93,9 @@ public class DjqTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("满轴缓存位 -> 待检区完成接口任务号为空!"); } + if (schBaseTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { + return; + } if (StringUtils.isBlank(schBaseTask.getVehicle_code())) { throw new BadRequestException("满轴缓存位 -> 待检区,子卷号不能为空!"); } @@ -217,9 +220,13 @@ public class DjqTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); + //todo 增加校验,完成状态不执行任何操作 if (schBaseTask == null) { throw new BadRequestException("满轴缓存位 -> 待检区强制完成接口任务号为空!"); } + if (schBaseTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { + return; + } updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode()); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index f790ee32c..268bb12a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -121,13 +121,13 @@ public class ZxqTask extends AbstractAcsTask { schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { - PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() - .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); - if (containerInfo == null) { - throw new BadRequestException("该子卷信息不存在!"); - } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { - throw new BadRequestException("子卷号不能为空!"); - } +// PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() +// .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); +// if (containerInfo == null) { +// throw new BadRequestException("该子卷信息不存在!"); +// } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { +// throw new BadRequestException("子卷号不能为空!"); +// } //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 From 0fd7a3cf6485e860b81970de09abf90e9a5075b2 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sat, 29 Jun 2024 16:45:31 +0800 Subject: [PATCH 6/6] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E5=88=86=E9=85=8D=E8=AF=B7=E6=B1=82=E9=A2=91=E7=B9=81=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../point/service/impl/BstIvtPackageinfoivtServiceImpl.java | 3 ++- .../b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index 38d81efcc..b80306765 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -91,7 +91,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + List zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); if (CollectionUtils.isEmpty(zxwPackageinfoivtList)) { return; }