From f473d92db6316e017150b9c593c65e82766a0509 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Wed, 22 Feb 2023 23:12:24 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=9E=8B=E6=9D=90=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=BA=E5=88=B6=E5=87=BA=E5=BA=93=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HandXCOutIvtServiceImpl.java | 67 +++++++++++-------- .../nl/pda/st/out/wql/QPADST_OUT_SERVICE2.wql | 25 +++++++ .../impl/StatisticalReportServiceImpl.java | 7 +- 3 files changed, 68 insertions(+), 31 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandXCOutIvtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandXCOutIvtServiceImpl.java index dd6030ad..39cfcd66 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandXCOutIvtServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandXCOutIvtServiceImpl.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nl.modules.system.service.UserService; import org.nl.modules.system.service.dto.UserDto; import org.nl.modules.system.util.CodeUtil; @@ -30,6 +31,7 @@ import java.math.BigDecimal; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import java.util.stream.Stream; @Service @RequiredArgsConstructor @@ -56,6 +58,7 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService { @Override @Transactional(rollbackFor = Exception.class) public Map queryStoragevehicle(Map jsonObject) { + Boolean result =Boolean.TRUE; JSONObject returnjo = new JSONObject(); String storagevehicle_code = jsonObject.get("storagevehicle_code"); String workorder_code = jsonObject.get("workorder_code"); @@ -68,26 +71,31 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService { // 仓位属性表【ST_IVT_StructAttr】 WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline"); WQLObject pdm_bi_workorder = WQLObject.getWQLObject("pdm_bi_workorder"); + JSONObject workorder = pdm_bi_workorder.query("workorder_code='" + workorder_code + "'").uniqueResult(0); + String workorderId = workorder.getString("workorder_id"); - JSONObject jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").uniqueResult(0); - if(jo==null){ + JSONArray jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0); + if(jo==null || jo.size() == 0){ throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!"); } - String is_send = jo.getString("is_send"); - if("1".equals(is_send)){ - throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!"); - } - String workorder_id = jo.getString("workorder_id"); - JSONObject wo = pdm_bi_workorder.query("workorder_id='"+workorder_id+"'").uniqueResult(0); - if(wo == null ||!workorder_code.equals(wo.getString("workorder_code"))){ - throw new PdaRequestException("该载具"+storagevehicle_code+"组盘工令与所选工令不一致!"); + Optional has = jo.stream().filter(o -> workorderId.equals(((JSONObject) o).get("workorder_id"))).findAny(); + if(!has.isPresent()){ + result = Boolean.FALSE; + }else { + JSONObject o = (JSONObject)has.get(); + String is_send = o.getString("is_send"); + if("1".equals(is_send)){ + throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!"); + } } //3、 通过托盘,查询【桶记录表】状态=入库,得到载具桶库存信息,无结果提示错误; - JSONArray bucketrow = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "2").addParam("storagevehicle_code", storagevehicle_code).process().getResultJSONArray(0); + //4通过工令查询 + JSONArray bucketrow = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "3").addParam("workorderId",workorderId).process().getResultJSONArray(0); returnjo.put("code", "1"); returnjo.put("desc", "查询成功"); returnjo.put("content", bucketrow); + returnjo.put("result", result); return returnjo; } @@ -103,9 +111,6 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService { String storagevehicle_code = mst.getString("vehicle_code"); String workorder_code = mst.getString("workorder_code"); - if (StrUtil.isEmpty(storagevehicle_code)) { - throw new PdaRequestException("载具不能为空!"); - } if (StrUtil.isEmpty(workorder_code)) { throw new PdaRequestException("工令不能为空!"); } @@ -113,22 +118,26 @@ public class HandXCOutIvtServiceImpl implements HandXCOutIvtService { // 仓位属性表【ST_IVT_StructAttr】 WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline"); WQLObject pdm_bi_workorder = WQLObject.getWQLObject("pdm_bi_workorder"); - - JSONObject jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").uniqueResult(0); - if(jo==null){ - throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!"); + JSONObject workorder = pdm_bi_workorder.query("workorder_code='" + workorder_code + "'").uniqueResult(0); + String workorderId = workorder.getString("workorder_id"); + if (StringUtils.isNotEmpty(storagevehicle_code)){ + JSONArray jo = PDM_BI_ProcedureOffline.query("storagevehicle_code='"+storagevehicle_code+"'").getResultJSONArray(0); + if(jo==null ||jo.size() == 0){ + throw new PdaRequestException("该载具"+storagevehicle_code+"无组盘记录!"); + } + Optional any = jo.stream().filter(o -> workorderId.equals(((JSONObject) o).get("workorder_id"))).findAny(); + if(!any.isPresent()){ + throw new PdaRequestException("该载具"+storagevehicle_code+"无对应工令的组盘信息!"); + }else { + JSONObject o = (JSONObject)any.get(); + String is_send = o.getString("is_send"); + if("1".equals(is_send)){ + throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!"); + } + } } - String is_send = jo.getString("is_send"); - if("1".equals(is_send)){ - throw new PdaRequestException("该载具"+storagevehicle_code+"已发货,不允许再次发货!"); - } - String workorder_id = jo.getString("workorder_id"); - JSONObject wo = pdm_bi_workorder.query("workorder_id='"+workorder_id+"'").uniqueResult(0); - String workorder_code2 = wo.getString("workorder_code"); - if(!workorder_code2.equals(workorder_code)){ - throw new PdaRequestException("该载具"+storagevehicle_code+"组盘工令与所选工令不一致!"); - } - JSONArray dtls = jsonObject.getJSONArray("dtl"); + //4通过工令查询 + JSONArray dtls = WQL.getWO("QPADST_OUT_SERVICE2").addParam("flag", "3").addParam("workorderId",workorderId).process().getResultJSONArray(0); Set set = new HashSet(); for(int i=0;i "" + procedureoffline.workorder_id = 输入.workorderId + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java index fb03d1df..46930948 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java @@ -591,11 +591,14 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { WQLObject PDM_BI_ProcedureOffline = WQLObject.getWQLObject("PDM_BI_ProcedureOffline"); JSONArray array = PDM_BI_ProcedureOffline.query("storagevehicle_code='" + storagevehicle_code + "'").getResultJSONArray(0); - if(array==null || array.size() == 0){ + String pcsn = jsonObject.getString("pcsn"); + Optional any = array.stream().filter(o -> pcsn.equals(((JSONObject) o).get("pcsn"))).findAny(); + if(!any.isPresent()){ throw new BadRequestException("该载具"+storagevehicle_code+"无组盘记录!"); } + List collect1 = array.stream().filter(o -> pcsn.equals(((JSONObject) o).get("pcsn"))).collect(Collectors.toList()); List diskrecordIds = new ArrayList<>(); - for (Object o : array) { + for (Object o : collect1) { JSONObject jo = (JSONObject) o; String is_send = jo.getString("is_send"); if(!"1".equals(is_send)){