From 3a20cf0c922e10f59c23bea460441fbd6f6a9813 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 18 Mar 2025 11:04:52 +0800 Subject: [PATCH] =?UTF-8?q?opt:RK1004=E4=BB=BB=E5=8A=A1=E5=86=B2=E7=AA=81?= =?UTF-8?q?=EF=BC=9Bfix:=E5=87=BA=E5=BA=93AGV=E5=B9=B6=E5=8F=91=E9=97=AE?= =?UTF-8?q?=E9=A2=98;opt:=E6=95=B0=E5=AD=97=E5=AD=AA=E7=94=9Fsql=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/VehicleTwoServiceImpl.java | 20 +++- .../mapper/PdmBiSubpackagerelationMapper.java | 3 + .../mapper/PdmBiSubpackagerelationMapper.xml | 3 + .../IpdmBiSubpackagerelationService.java | 6 ++ .../PdmBiSubpackagerelationServiceImpl.java | 4 + .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 7 +- .../impl/LmsToBigScreenServiceImpl.java | 95 +++++++++++-------- 7 files changed, 92 insertions(+), 46 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java index cef4ea763..b7cb22c43 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pda.service.VehicleTwoService; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.service.IschBasePointService; +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.TwoInEmpExcepTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; @@ -20,9 +22,14 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.mes.service.LmsToMesService; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.stream.Collectors; @Service @Slf4j @@ -32,7 +39,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { * 入空载具服务 */ @Autowired - private InVehicleManageService inVehicleManageService; + private IschBaseTaskService ischBaseTaskService; /** * 入空木箱服务 @@ -186,6 +193,17 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { String bill_type = whereJson.getString("bill_type"); whereJson.put("material_barcode", whereJson.getString("box_no")); whereJson.put("device_code", whereJson.getString("point_code")); + if ("RK1002".equals(whereJson.getString("point_code"))){ + List list = ischBaseTaskService.list(new QueryWrapper() + .select("task_id") + .eq("point_code2", "RK1004") + .eq("task_type", "010706") + .eq("is_delete", "0") + .lt("task_status", TaskStatusEnum.FINISHED.getCode())); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException("稍后再试,异常口存在正在执行的任务"+ list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + } + } if (bill_type.equals("1")) { whereJson.put("bill_type", IOSEnum.IN_TYPE.code("返检入库")); } else if (bill_type.equals("2")) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java index 982f65cb1..b16f3a2d4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java @@ -1,5 +1,6 @@ package org.nl.b_lms.pdm.subpackagerelation.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ public interface PdmBiSubpackagerelationMapper extends BaseMapper queryContainerNameBySaleOrder(@Param("sale_order_name") String sale_order_name, @Param("container_name") String container_name); + List getStructInfoBySZLS(); + } 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 4431cef53..39e42ecaf 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 @@ -110,6 +110,9 @@ ORDER BY box_group + 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 1c41a8659..99c61d862 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 @@ -121,6 +121,12 @@ public interface IpdmBiSubpackagerelationService extends IService getStructInfoBySZLS(); + } 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 91568a89d..bbe37f1de 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 @@ -770,5 +770,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl getStructInfoBySZLS() { + return this.baseMapper.getStructInfoBySZLS(); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java index cde67aa04..ffe1dc53d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -319,9 +319,10 @@ public class TwoOutHeapTask extends AbstractAcsTask { .getResultJSONArray(0).toJavaList(JSONObject.class); if (ObjectUtil.isEmpty(taskArrAll)) { - taskArrAll = wo_Task - .query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' ORDER BY create_time") - .getResultJSONArray(0).toJavaList(JSONObject.class); + return; +// taskArrAll = wo_Task +// .query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' ORDER BY create_time") +// .getResultJSONArray(0).toJavaList(JSONObject.class); } // 是否下发多个AGV输送出库任务 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java index dd2fa72cb..435dcb03d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/szls/service/impl/LmsToBigScreenServiceImpl.java @@ -4,8 +4,12 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.common.utils.MapOf; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -16,8 +20,13 @@ import org.nl.wms.sch.manage.AutoQueryProudDayData; import org.nl.wms.sch.tasks.URLEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -26,6 +35,8 @@ public class LmsToBigScreenServiceImpl implements LmsToBigScreenService { @Autowired private final WmsToAcsService wmsToAcsService; + @Autowired + private IpdmBiSubpackagerelationService ipdmBiSubpackagerelationService; @Override public JSONObject getDeviceInfo(JSONObject jo) { @@ -59,50 +70,50 @@ public class LmsToBigScreenServiceImpl implements LmsToBigScreenService { @Override public JSONArray getStructInfo(JSONObject jo) { - JSONArray rows = WQLObject.getWQLObject("st_ivt_structattr").query("sect_code IN ('ZC01','KTP01','ZZ01','PD01')").getResultJSONArray(0); + List rows = ipdmBiSubpackagerelationService.getStructInfoBySZLS(); JSONArray data = new JSONArray(); - for (int i = 0; i < rows.size(); i++) { - JSONObject row = rows.getJSONObject(i); - JSONObject json = new JSONObject(); - String struct_code = row.getString("struct_code"); - json.put("struct_code", struct_code); - json.put("struct_status", "0"); - String storagevehicle_code = row.getString("storagevehicle_code"); - if (StrUtil.isNotEmpty(storagevehicle_code)) { - json.put("storagevehicle_code", storagevehicle_code); - if (storagevehicle_code.startsWith("KTP")) { - json.put("struct_status", "1"); - } - String struct_id = row.getString("struct_id"); - JSONArray array = WQL - .getWO("QST_STRUCTATTR") - .addParamMap(MapOf.of("struct_id", struct_id, "flag", "1")) - .process() - .getResultJSONArray(0); - // 计算合计 - JSONObject object = array.getJSONObject(0); - if (ObjectUtil.isNotEmpty(object.getString("net_weight"))) { - BigDecimal container_weight = array.stream().map(info -> ((JSONObject) info).getBigDecimal("net_weight")).reduce(BigDecimal.ZERO, BigDecimal::add); - json.put("container_weight", container_weight); - json.put("product_description", object.getString("product_description")); - json.put("sale_order_name", object.getString("sale_order_name")); - json.put("quanlity_in_box", object.getString("quanlity_in_box")); - json.put("box_weight", object.getString("box_weight")); - json.put("struct_status", "2"); - JSONArray detail = new JSONArray(); - for (int j = 0; j < array.size(); j++) { - JSONObject dtl = array.getJSONObject(j); - String container_name = dtl.getString("container_name"); - String net_weight = dtl.getString("net_weight"); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("container_name", container_name); - jsonObject.put("net_weight", net_weight); - detail.add(jsonObject); - } - json.put("detail", detail); - } + List boxs = new ArrayList<>(); + for (JSONObject row : rows) { + String box = row.getString("storagevehicle_code"); + if (!StringUtils.isEmpty(box) && box.contains("MX")){ + boxs.add(box); + } + } + List list = ipdmBiSubpackagerelationService.list(new QueryWrapper() + .in("package_box_sn", boxs) + .select("package_box_sn","container_name","product_description", "sale_order_name", "quanlity_in_box","box_weight", "net_weight")); + Map> collect = list.stream().filter(a->StringUtils.isNotEmpty(a.getPackage_box_sn())).collect(Collectors.groupingBy(item -> item.getPackage_box_sn())); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.get(i); + String box = row.getString("storagevehicle_code"); + if (!StringUtils.isEmpty(box)){ + JSONObject item = new JSONObject(); + item.put("storagevehicle_code", box); + if (box.startsWith("KTP")) { + item.put("struct_status", "1"); + }else { + List subs = collect.get(box); + if (!CollectionUtils.isEmpty(subs) && StringUtils.isNotEmpty(subs.get(0).getNet_weight())){ + BigDecimal container_weight = subs.stream().map(info -> new BigDecimal(info.getNet_weight())) + .reduce(BigDecimal.ZERO, BigDecimal::add); + item.put("container_weight", container_weight); + item.put("product_description", subs.get(0).getProduct_description()); + item.put("sale_order_name", subs.get(0).getSale_order_name()); + item.put("quanlity_in_box", subs.get(0).getQuanlity_in_box()); + item.put("box_weight", subs.get(0).getBox_weight()); + item.put("struct_status", "2"); + JSONArray detail = new JSONArray(); + for (PdmBiSubpackagerelation dtl : subs) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("container_name", dtl.getContainer_name()); + jsonObject.put("net_weight", dtl.getNet_weight()); + detail.add(jsonObject); + } + item.put("detail", detail); + } + } + data.add(item); } - data.add(json); } return data; }