From 9ecc87036994a76c84c31451b7d51c1543ffc29e Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sun, 30 Jun 2024 18:10:59 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E5=AD=90=E5=8D=B7?= =?UTF-8?q?=E8=A3=85=E7=AE=B1=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationController.java | 12 + .../mapper/PdmBiSubpackagerelationMapper.xml | 5 +- .../IpdmBiSubpackagerelationService.java | 23 +- .../PdmBiSubpackagerelationServiceImpl.java | 273 ++++++++++-------- .../impl/BstIvtPackageinfoivtServiceImpl.java | 5 +- .../sch/tasks/first_floor_area/DjqTask.java | 23 +- .../first_floor_area/DjqToKzjhcwTask.java | 9 +- .../sch/tasks/first_floor_area/GzqTask.java | 9 +- .../first_floor_area/GzqToKzjhcwTask.java | 9 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 9 +- .../first_floor_area/SendDjqKzjTask.java | 9 +- .../first_floor_area/SendGzqKzjTask.java | 9 +- .../tasks/first_floor_area/SsxDjwTask.java | 9 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 13 +- .../sch/tasks/first_floor_area/ZxqTask.java | 9 +- .../first_floor_area/auto/AutoSendToZxq.java | 23 +- .../auto/AutoSendZxToDjw.java | 30 +- .../auto/ManualSendToZxq.java | 54 ++++ .../database/service/dao/BstIvtBoxinfo.java | 5 + .../main/java/org/nl/wms/util/TaskUtil.java | 40 +++ .../src/views/wms/pdm/sub/DivDialog.vue | 86 ++++-- .../src/views/wms/pdm/sub/MaterDialog.vue | 21 +- .../src/views/wms/pdm/sub/packagerelation.js | 10 +- 23 files changed, 412 insertions(+), 283 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java index b2fcf2cef..40208cc61 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -120,6 +120,18 @@ public class PdmBiSubpackagerelationController { } + @PostMapping("/transferBoxPackageToMes") + @Log("传输子卷包装关系至LMS") + //@SaCheckPermission("@el.check(updateEntityList)") + public ResponseEntity transferBoxPackageToMes(@RequestBody JSONObject whereJson) { + pdmBiSubpackagerelationService.transferBoxPackageToMes(true,whereJson,null,null,null); + return new ResponseEntity<>(HttpStatus.OK); + } + + + + + /** * 删除数据 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml index 84ee3186e..b92899986 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml @@ -54,7 +54,7 @@ FROM pdm_bi_subpackagerelation WHERE - container_name IN (SELECT container_name FROM bst_ivt_packageinfoivt WHERE point_status = '6') + container_name IN (SELECT container_name FROM bst_ivt_packageinfoivt WHERE point_status = '3' AND ivt_status = '3') AND sale_order_name LIKE CONCAT('%', #{sale_order_name}, '%') @@ -81,7 +81,8 @@ FROM `pdm_bi_subpackagerelation` a LEFT JOIN bst_ivt_packageinfoivt b ON a.container_name = b.container_name LEFT JOIN pdm_bi_slittingproductionplan c ON a.container_name = c.container_name - WHERE b.point_status = '6' + WHERE b.point_status = '3' + AND b.ivt_status = '3' AND a.sale_order_name = #{sale_order_name} ORDER BY box_group DESC diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index 73bd2a5b9..fb67ff733 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -1,19 +1,16 @@ package org.nl.b_lms.pdm.subpackagerelation.service; import com.alibaba.fastjson.JSONObject; -import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.common.domain.query.PageQuery; +import org.springframework.data.domain.Pageable; import java.util.List; import java.util.Map; import java.util.Set; -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; -import org.nl.common.domain.query.PageQuery; -import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.RequestBody; - /** * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)服务接口层 @@ -69,7 +66,17 @@ public interface IpdmBiSubpackagerelationService extends IService containerNameList, String boxSn, String totalWeight); /** 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 3e4968830..7991d78c9 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,43 +1,45 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; -import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.StopWatch; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.log4j.Log4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; -import cn.hutool.core.date.DateUtil; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; 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.DjqTask; +import org.nl.b_lms.sch.tasks.first_floor_area.ZxDjwTask; +import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; 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; +import org.nl.common.domain.query.PageQuery; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -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.ext.mes.service.impl.LmsToMesServiceImpl; 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; -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.nl.common.domain.query.PageQuery; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -55,6 +57,7 @@ import java.util.stream.Collectors; * @since 2024-02-01 */ @Service("pdmBiSubpackagerelationService") +@Log4j public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl implements IpdmBiSubpackagerelationService { @Resource @@ -66,14 +69,14 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl queryBoxSpec(Map whereJson, Pageable page) { Map boxInfoList = new HashMap(); - //IPage resultPage = new Page<>(page.getPageNumber(), page.getPageSize()); IPage resultPage = new Page<>(page.getPageNumber() + 1, page.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (whereJson.containsKey("search")) { @@ -190,11 +187,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl countByGroup = pdmBiSubpackagerelationList.stream() .filter(item -> item.getBox_group() != null) .collect(Collectors.groupingBy(PdmBiSubpackagerelation::getBox_group, Collectors.counting())); - pdmBiSubpackagerelationList.forEach(item -> { - if (item.getBox_group() != null) { - item.setQuanlity_in_box(BigDecimal.valueOf(countByGroup.getOrDefault(item.getBox_group(), null))); + pdmBiSubpackagerelationList.forEach(r -> { + //获取子卷长度 + // int containerLength = getMaxNum(null, r.getPaper_tube_description()); + // r.setUn_plan_product_property3(Integer.toString(containerLength)); + if (r.getBox_group() != null) { + r.setQuanlity_in_box(BigDecimal.valueOf(countByGroup.getOrDefault(r.getBox_group(), null))); } else { - item.setQuanlity_in_box(BigDecimal.ZERO); - item.setBox_group("0"); + r.setQuanlity_in_box(BigDecimal.ZERO); + r.setBox_group("0"); } }); - - - //下发空木箱出库任务 - //outBox1(); - - //满轴->待检 - //mzToDj(); - - //待检->装箱 - // djToZx(); - - //下发桁架任务1 - //transferToPacking1(); - - //下发桁架任务2 - //transferToPacking2(); - - return pdmBiSubpackagerelationList; } @@ -275,16 +254,21 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); + if (CollectionUtils.isEmpty(packagerelationList)) { + throw new BadRequestException("无选中子卷信息"); + } //检查是否存在已分配规格的子卷号 List isOutBox = packagerelationList.stream().filter(r -> r.getStatus().equals("0")).collect(Collectors.toList()); if (isOutBox.size() > 0) { - throw new BadRequestException("标记为黄色的子卷号已分配且对应的木箱正在出库,请重新选择未分配木箱规格的子卷"); - } - JSONArray jsonArray = whereJson.getJSONArray("tableMater"); - if (jsonArray == null || jsonArray.size() == 0) { - throw new BadRequestException("无选中子卷信息"); + throw new BadRequestException("标记为黄色的子卷号已分配且对应的木箱已出库,请重新选择未分配木箱规格的子卷"); } + // JSONArray jsonArray = whereJson.getJSONArray("tableMater"); + // if (jsonArray == null || jsonArray.size() == 0) { + // throw new BadRequestException("无选中子卷信息"); + // } //均衡获取木箱出库装箱区对接位 String deviceCode = getPointCode(); Integer taskCount = bstIvtPackageinfoivtMapper.getZxqTaskCount(deviceCode.substring(deviceCode.lastIndexOf("_") + 1)); @@ -292,7 +276,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper - .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, jsonArray.getJSONObject(0).getString("sale_order_name"))); + .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, packagerelationList.get(0).getSale_order_name())); Integer maxBoxGroup = pdmBiSubpackagerelationList.stream() .map(PdmBiSubpackagerelation::getBox_group) .filter(Objects::nonNull) @@ -300,14 +284,31 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() + List workIdList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() .map(PdmBiSubpackagerelation::getWorkorder_id) .map(String::valueOf) .collect(Collectors.toList()); - if (entityList.isEmpty()) { + if (workIdList.isEmpty()) { return; } - outBox(entityList, packagerelationList, deviceCode, maxBoxGroup, whereJson.getString("checked")); + //根据分切计划获取子卷重量计算理论毛重 + Set containerNameList = packagerelationList.stream() + .map(PdmBiSubpackagerelation::getContainer_name) + .collect(Collectors.toSet()); + BigDecimal totalWeight; + List planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper().in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)); + totalWeight = planList.stream() + .map(PdmBiSlittingproductionplan::getWeight) + .filter(Objects::nonNull) + .filter(r -> !r.isEmpty()) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal boxWeight = new BigDecimal(whereJson.getString("box_weight")); + totalWeight = totalWeight.add(boxWeight); + stopWatch.stop(); + System.out.println("子卷装箱代码1装箱信息查询执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); + log.info("子卷装箱代码1箱信息查询执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); + outBox(workIdList, containerNameList, deviceCode, maxBoxGroup, whereJson.getString("checked"), totalWeight.toString()); } catch (Exception e) { throw new BadRequestException(e.getMessage()); } @@ -317,52 +318,132 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList, List packagerelationList, String deviceCode, Integer maxBoxGroup, String boxType) { + private void outBox(List workIdList, Set containerNameList, String deviceCode, Integer maxBoxGroup, String boxType, String totalWeight) { //均衡获取装箱对接位 //String deviceCode = "ZXQ_1_1"; + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); JSONObject boxInfo = new JSONObject(); //确定装箱区终点 boxInfo.put("device_code", deviceCode); boxInfo.put("material_code", boxType); - boxInfo.put("num", entityList.size()); + boxInfo.put("num", workIdList.size()); String boxSn = outBoxManageService.outBox(boxInfo); + stopWatch.stop(); + System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); + log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); + //String boxSn = "MX230118000013"; + StopWatch stopWatch1 = new StopWatch(); + stopWatch1.start(); //更新及子卷包装状态已分配规格及木箱规格组 CompletableFuture.runAsync(() -> { try { - updateBoxGroup(maxBoxGroup, entityList, boxType); + updateBoxGroup(maxBoxGroup, workIdList, boxSn, boxType, totalWeight); } catch (Exception e) { log.error("异常信息:" + e); } }, pool); - //更新子卷包装关系更新木箱号 + //给LMS传输子卷包装关系 CompletableFuture.runAsync(() -> { try { - updateBoxInfo(entityList, boxSn); + transferBoxPackageToMes(true, null, containerNameList, boxSn, totalWeight); } catch (Exception e) { log.error("异常信息:" + e); } }, pool); //待检区->装箱区agv任务 -// CompletableFuture.runAsync(() -> { -// try { -// agvTransfer(packagerelationList, deviceCode, boxSn); -// } catch (Exception e) { -// log.error("异常信息:" + e); -// } -// }, pool); + CompletableFuture.runAsync(() -> { + try { + agvTransfer(containerNameList, deviceCode, boxSn); + } catch (Exception e) { + log.error("异常信息:" + e); + } + }, pool); + stopWatch1.stop(); + System.out.println("子卷装箱代码2装箱信息更新执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch1.getTotalTimeMillis()); + log.info("子卷装箱代码2装箱信息更新执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch1.getTotalTimeMillis()); } - private void updateBoxGroup(Integer maxBoxGroup, List entityList, String boxType) { - // code:终点,material_code:木箱规格,num: 子卷数 + private void updateBoxGroup(Integer maxBoxGroup, List entityList, String boxSn, String boxType, String totalWeight) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("package_box_sn", boxSn); updateWrapper.set("quanlity_in_box", entityList.size()); updateWrapper.set("box_type", boxType); updateWrapper.set("box_group", maxBoxGroup); + updateWrapper.set("box_weight", totalWeight); updateWrapper.set("status", "0"); updateWrapper.in("workorder_id", entityList); pdmBiSubpackagerelationMapper.update(null, updateWrapper); } + + /** + * 传输子卷包装关系至LMS + */ + public void transferBoxPackageToMes(boolean manual, JSONObject whereJson, Set containerNameList, String boxSn, String totalWeight) { + List packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); + JSONObject param = new JSONObject(); + //手动推送 + if (manual) { + if (StringUtils.isBlank(packagerelationList.get(0).getPackage_box_sn()) || packagerelationList.get(0).getBox_weight() == null) { + throw new BadRequestException("子卷未确定木箱规格信息!"); + } + BigDecimal boxWeight = new BigDecimal(String.valueOf(packagerelationList.get(0).getBox_weight())); + if (boxWeight.compareTo(new BigDecimal(0)) == 0) { + throw new BadRequestException("理论毛重不能为0"); + } + JSONArray containerJsonArray = packagerelationList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toCollection(JSONArray::new)); + param.put("rows", containerJsonArray); + param.put("num", packagerelationList.size()); + param.put("box_no", packagerelationList.get(0).getPackage_box_sn()); + param.put("box_weight", packagerelationList.get(0).getBox_weight()); + } else { + param.put("num", containerNameList.size()); + param.put("rows", containerNameList.stream().collect(Collectors.toCollection(JSONArray::new))); + param.put("box_no", boxSn); + param.put("box_weight", totalWeight); + } + lmsToMesServiceImpl.momBoxPackageSubmit(param); + } + + + protected void agvTransfer(Set containerNameList, String deviceCode, String boxSn) { + //待检区点位 + List djqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("合格品")) + //.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("有子卷")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + List djqPoints = djqPointList.stream() + .filter(r -> containerNameList.contains(r.getContainer_name())) + .collect(Collectors.toList()); + //任务组id + String groupId = deviceCode.substring(deviceCode.lastIndexOf("_") + 1); + List schBaseTaskList = new ArrayList<>(); + //确定起点,安装装箱组标识加入任务队列 + djqPoints.forEach(r -> { + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + jo.put("vehicle_code", r.getContainer_name()); + jo.put("point_code1", r.getPoint_code()); + jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); + //木箱号 + jo.put("vehicle_code2", groupId); + //任务组id + //jo.put("car_no", deviceCode); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(zxqTask.createTask(jo)); + //增加任务到队列 + schBaseTaskList.add(task); + }); + //taskQueueManager.addTasksToQueue(groupId, schBaseTaskList); + if (CollectionUtils.isNotEmpty(schBaseTaskList)) { + taskQueue.addTasksToQueue(groupId, schBaseTaskList); + } + } + private String getPointCode() { //均衡获取木箱出库装箱区对接位 List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_status, "5").eq(BstIvtPackageinfoivt::getIs_used, "1").orderByAsc(BstIvtPackageinfoivt::getPoint_code)); @@ -401,55 +482,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl bstIvtPackageinfoivtList.get(0).getPoint_code()); } - - protected void updateBoxInfo(List entityList, String boxSn) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("package_box_sn", boxSn); - updateWrapper.in("workorder_id", entityList); - pdmBiSubpackagerelationMapper.update(null, updateWrapper); - } - - - protected void agvTransfer(List packagerelationList, String deviceCode, String boxSn) { - //待检区点位 - List djqPointList = packageinfoivtService - .list(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区")) - .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - //.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("合格品")) - .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("有子卷")) - .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - Set containerNames = packagerelationList.stream() - .map(PdmBiSubpackagerelation::getContainer_name) - .collect(Collectors.toSet()); - List djqPoints = djqPointList.stream() - .filter(r -> containerNames.contains(r.getContainer_name())) - .collect(Collectors.toList()); - //任务组id - String groupId = deviceCode.substring(deviceCode.lastIndexOf("_") + 1); - List schBaseTaskList = new ArrayList<>(); - //确定起点,安装装箱组标识加入任务队列 - djqPoints.forEach(r -> { - JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); - jo.put("vehicle_code", r.getContainer_name()); - jo.put("point_code1", r.getPoint_code()); - jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); - //木箱号 - jo.put("vehicle_code2", groupId); - //任务组id - //jo.put("car_no", deviceCode); - SchBaseTask task = new SchBaseTask(); - task.setTask_id(zxqTask.createTask(jo)); - //增加任务到队列 - schBaseTaskList.add(task); - }); - //taskQueueManager.addTasksToQueue(groupId, schBaseTaskList); - if (CollectionUtils.isNotEmpty(schBaseTaskList)) { - taskQueue.addTasksToQueue(groupId, schBaseTaskList); - } - } - /** * 待检区->装箱区agv任务 */ @@ -459,7 +491,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区")) .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - //todo 暂时改为合格品 .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("合格品")) .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); Set containerNames = packagerelationList.stream() 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 b80306765..058f32b31 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 @@ -90,8 +90,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (schBaseTask == null) { - throw new BadRequestException("满轴缓存位 -> 待检区完成接口任务号为空!"); - } - if (schBaseTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { - return; - } - if (StringUtils.isBlank(schBaseTask.getVehicle_code())) { - throw new BadRequestException("满轴缓存位 -> 待检区,子卷号不能为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -109,7 +102,6 @@ public class DjqTask extends AbstractAcsTask { //2.改变起点点位状态,二次分配,取货完成就改起点库存 //packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //3更新库存记录 - //todo 暂时改为质检合格品 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); //清除首次分配目标点位 schBaseTask.setPoint_code3(""); @@ -134,7 +126,6 @@ public class DjqTask extends AbstractAcsTask { } //5搬运装箱区 //sendDjqToZxq(schBaseTask); - } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -150,6 +141,8 @@ public class DjqTask extends AbstractAcsTask { taskService.update(schBaseTask); } + + @Override public String createTask(JSONObject form) { Assert.notNull(form, "请求参数不能为空"); @@ -220,13 +213,7 @@ 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; - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/DjqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java index 9148f4bd0..1fdca90f7 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 @@ -25,6 +25,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -90,9 +91,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("待检区->空载具缓存位完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -196,9 +195,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("待检区->空载具缓存位强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index b06477809..bf00f8ee2 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 @@ -24,6 +24,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -86,9 +87,7 @@ public class GzqTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("满轴缓存位 -> 管制区完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -190,9 +189,7 @@ public class GzqTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("满轴缓存位 -> 管制区强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index d759f3d77..ceb7a4833 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 @@ -25,6 +25,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -90,9 +91,7 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("管制区->空载具缓存位完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -196,9 +195,7 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("管制区->空载具缓存位强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index 6e8be3d7a..38a4f0b52 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 @@ -27,6 +27,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -107,9 +108,7 @@ public class MzhcwTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("输送线点位 -> 满轴缓存位完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; // 执行中 if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 @@ -346,9 +345,7 @@ public class MzhcwTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("输送线点位 -> 满轴缓存位强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/SendDjqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java index ca82aa828..4db51c7d2 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 @@ -22,6 +22,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -80,9 +81,7 @@ public class SendDjqKzjTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("装箱区->待检区送空载具完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -166,9 +165,7 @@ public class SendDjqKzjTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("装箱区->待检区送空载具强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 6760a885c..129a0ff98 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 @@ -22,6 +22,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -80,9 +81,7 @@ public class SendGzqKzjTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("装箱区->管制区送空载具完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -166,9 +165,7 @@ public class SendGzqKzjTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("装箱区->管制区送空载具强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 1919b7243..4305ce66b 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 @@ -22,6 +22,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -83,9 +84,7 @@ public class SsxDjwTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("空载具缓存位 -> 输送线完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -184,9 +183,7 @@ public class SsxDjwTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("空载具缓存位 -> 输送线强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 13f4c9b17..aad21b5dc 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 @@ -30,6 +30,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -101,9 +102,7 @@ public class ZxDjwTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("装箱区 -> 装箱对接位完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -129,7 +128,7 @@ public class ZxDjwTask extends AbstractAcsTask { throw new BadRequestException("子卷包装关系为已装箱或找该任务的木箱号不存在!"); } //4.更改木箱信息为已装箱:1 - bstIvtBoxinfo.setIs_packing("1"); + bstIvtBoxinfo.setIs_packing(IOSEnum.IS_NOTANDYES.code("是")); bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo); } if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { @@ -139,7 +138,7 @@ public class ZxDjwTask extends AbstractAcsTask { //6.改变子卷包装状态为已装箱:1 PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); - pdmBiSubpackagerelation.setStatus("1"); + pdmBiSubpackagerelation.setStatus(IOSEnum.IS_NOTANDYES.code("是")); subpackageRelationService.updateById(pdmBiSubpackagerelation); //创建装箱区->空载具缓存位补空任务 //kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1()); @@ -218,9 +217,7 @@ public class ZxDjwTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("装箱区 -> 装箱对接位强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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 268bb12a8..5e587ed3a 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 @@ -31,6 +31,7 @@ import org.nl.system.service.param.ISysParamService; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -113,9 +114,7 @@ public class ZxqTask extends AbstractAcsTask { @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); - if (schBaseTask == null) { - throw new BadRequestException("待检区 -> 装箱区完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); @@ -290,9 +289,7 @@ public class ZxqTask extends AbstractAcsTask { public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); - if (schBaseTask == null) { - throw new BadRequestException("待检区 -> 装箱区强制完成接口任务号为空!"); - } + if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) 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/auto/AutoSendToZxq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java index ee47d0444..7292bb5f8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java @@ -36,33 +36,12 @@ public class AutoSendToZxq { this.sendDjqToZxq(); } - /** - * 普通任务 - */ - void sendDjqToZxq() { - JSONObject toDjqTask = new JSONObject(); - //待检区有子卷且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); - if (CollectionUtils.isEmpty(djqPackageinfoivtList)) { - return; - } - List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), "", ""); - if (CollectionUtils.isEmpty(zxqPackageinfoivtList)) { - return; - } - toDjqTask.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name()); - toDjqTask.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); - toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); - toDjqTask.put("point_code2", zxqPackageinfoivtList.get(0).getPoint_code()); - zxqTask.createTask(toDjqTask); - - } /** * 二次分配任务 */ - public void sendDjqToZxq1() { + public void sendDjqToZxq() { //装箱区有空位,去待检区消费合格品子卷 List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask( PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java index f479e2793..1d7587bad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java @@ -16,6 +16,7 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.tasks.first_floor_area.ZxDjwTask; 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.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.system.service.param.ISysParamService; @@ -25,6 +26,8 @@ import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; +import static org.nl.wms.util.TaskUtil.getMaxNum; + @Slf4j @Component @@ -57,12 +60,12 @@ public class AutoSendZxToDjw { void sendZxToDjw() { //装箱位有木箱 - 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("装箱区->装箱对接位")); + List zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "", PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); if (CollectionUtils.isEmpty(zxwPackageinfoivtList)) { return; } //装箱区有子卷且没有正在进行的装箱任务 - List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); + List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"),"", "", ""); if (CollectionUtils.isEmpty(zxqPackageinfoivtList)) { return; } @@ -98,21 +101,21 @@ public class AutoSendZxToDjw { jo.put("point_code2", zxwPackageinfoivtList.get(0).getPoint_code()); jo.put("vehicle_code", containerName); jo.put("vehicle_code2", boxNo); - jo.put("is_send", "1"); + jo.put("is_send", IOSEnum.IS_NOTANDYES.code("是")); //扩展参数 JSONObject param = new JSONObject(); //查询是否为最后一个子卷,相同木箱号且子卷包装状态为生成 List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0")); if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(containerName)) { //最后子卷 - param.put("lastOne", "1"); + param.put("lastOne", IOSEnum.IS_NOTANDYES.code("是")); } else { - param.put("lastOne", "0"); + param.put("lastOne", IOSEnum.IS_NOTANDYES.code("否")); } //获取木箱高度等级 param.put("heightLevel", getHeightLevel(bstIvtBoxinfo)); //获取子卷长度 - param.put("len", getMaxNum(productionPlanList)); + param.put("len", getMaxNum(productionPlanList.get(0),null)); //木箱最大数量 param.put("maxNo", bstIvtBoxinfo.getNum()); //托盘类型 1小托盘 2大托盘 @@ -154,20 +157,7 @@ public class AutoSendZxToDjw { return height; } - private static int getMaxNum(List productionPlanList) { - String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); - int maxNum = 0; - for (String part : containerLength.split("\\|")) { - String numStr = part.replaceAll("\\D+", ""); - if (!numStr.isEmpty()) { - int num = Integer.parseInt(numStr); - if (num > maxNum) { - maxNum = num; - } - } - } - return maxNum; - } + // void sendMzqToDjq() { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java new file mode 100644 index 000000000..60e766c88 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/ManualSendToZxq.java @@ -0,0 +1,54 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import com.alibaba.fastjson.JSONObject; +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.tasks.first_floor_area.ZxqTask; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class ManualSendToZxq { + + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private ZxqTask zxqTask; + + + //待检区->装箱区agv手动搬运任务 + public void run() { + this.sendDjqToZxq(); + } + + /** + * 普通任务 + */ + void sendDjqToZxq() { + JSONObject toDjqTask = new JSONObject(); + //待检区有子卷且过滤未完成任务 + List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); + if (CollectionUtils.isEmpty(djqPackageinfoivtList)) { + return; + } + List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), "", ""); + if (CollectionUtils.isEmpty(zxqPackageinfoivtList)) { + return; + } + toDjqTask.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name()); + toDjqTask.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + toDjqTask.put("point_code2", zxqPackageinfoivtList.get(0).getPoint_code()); + zxqTask.createTask(toDjqTask); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java index 18aba53d4..be8cbc933 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java @@ -87,5 +87,10 @@ public class BstIvtBoxinfo implements Serializable { */ private String insert_time; + /* + * 木箱重量 + */ + private String box_weight; + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/util/TaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/util/TaskUtil.java index 89fc9ede4..a73b281dd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/util/TaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/util/TaskUtil.java @@ -1,5 +1,11 @@ package org.nl.wms.util; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.sch.manage.TaskStatusEnum; + public class TaskUtil { /** @@ -12,4 +18,38 @@ public class TaskUtil { return "normal"; } } + + /** + * 任务类参数校验 + */ + public static boolean checkParams(SchBaseTask schBaseTask, String taskType) { + if (schBaseTask == null) { + throw new BadRequestException("任务类型为:" + taskType + "完成接口任务号为空!"); + } + if (schBaseTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { + return true; + } + if (StringUtils.isBlank(schBaseTask.getVehicle_code())) { + throw new BadRequestException("任务类型为:" + taskType + "子卷号不能为空!"); + } + return false; + } + + /** + * 根据分切计划获取子卷长度 + */ + public static int getMaxNum(PdmBiSlittingproductionplan productionPlan, String paperDescription) { + String containerLength = productionPlan != null ? productionPlan.getPaper_tube_or_FRP().equals("1") ? productionPlan.getPaper_tube_description() : productionPlan.getFRP_description() : paperDescription; + int maxNum = 0; + for (String part : containerLength.split("\\|")) { + String numStr = part.replaceAll("\\D+", ""); + if (!numStr.isEmpty()) { + int num = Integer.parseInt(numStr); + if (num > maxNum) { + maxNum = num; + } + } + } + return maxNum; + } } \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue index b36fd8bbc..75fcde62e 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -43,7 +43,6 @@ - @@ -75,6 +74,19 @@ 清空 + + + 回传mes + + - +