From ed635c47975a0df7b59d40fd392f1d6756832944 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Fri, 28 Oct 2022 15:11:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/pda/mps/wql/PDA_02.wql | 2 +- .../pda/st/rest/ProductInstorController.java | 40 +++++++++ .../pda/st/service/ProductInstorService.java | 20 +++++ .../impl/ProductInstorServiceImpl.java | 51 ++++++++++++ .../java/org/nl/wms/pda/st/wql/PDA_ST_01.wql | 78 ++++++++++++++++++ .../src/main/java/org/nl/wms/sch/sch.xls | Bin 176128 -> 176128 bytes 6 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/st/rest/ProductInstorController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/ProductInstorService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql index affbc4960..8d8ce7a60 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql @@ -20,7 +20,7 @@ 输入.qzzno TYPEAS s_string 输入.sort_seq TYPEAS s_string 输入.point_location TYPEAS s_string - 输入.sql_str TYPEAS f_string + 输入.sql_str TYPEAS f_string [临时表] diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/rest/ProductInstorController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/rest/ProductInstorController.java new file mode 100644 index 000000000..67fd58c0d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/rest/ProductInstorController.java @@ -0,0 +1,40 @@ + +package org.nl.wms.pda.st.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.pda.st.service.CoolInService; +import org.nl.wms.pda.st.service.ProductInstorService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** +* @author zhouz +* @date 2022-05-25 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "半成品入库") +@RequestMapping("/api/pda/st") +@Slf4j +public class ProductInstorController { + + private final ProductInstorService productInstorService; + + @PostMapping("/boxQuery") + @Log("查询子卷包装关系") + @ApiOperation("查询子卷包装关系") + public ResponseEntity boxQuery(@RequestBody JSONObject whereJson){ + return new ResponseEntity<>(productInstorService.boxQuery(whereJson),HttpStatus.OK); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/ProductInstorService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/ProductInstorService.java new file mode 100644 index 000000000..e1e218df2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/ProductInstorService.java @@ -0,0 +1,20 @@ + +package org.nl.wms.pda.st.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** +* @description 服务接口 +* @author gby +* @date 2022-05-25 +**/ +public interface ProductInstorService { + + /** + * + * @param whereJson / + * @return JSONArray / + */ + JSONObject boxQuery(JSONObject whereJson); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java new file mode 100644 index 000000000..d2f87adbe --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -0,0 +1,51 @@ + +package org.nl.wms.pda.st.service.impl; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.pda.st.service.CoolInService; +import org.nl.wms.pda.st.service.ProductInstorService; +import org.springframework.stereotype.Service; + +import java.util.HashMap; + +/** + * @author zhouz + * @description 服务实现 + * @date 2022-05-25 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class ProductInstorServiceImpl implements ProductInstorService { + + @Override + public JSONObject boxQuery(JSONObject whereJson) { + String box_no = whereJson.getString("box_no"); + //1-报废入库;2-生产入库;3-退货入库 + String option = whereJson.getString("option"); + + JSONArray rows = new JSONArray(); + HashMap map = new HashMap<>(); + map.put("box_no",box_no); + if (option.equals("1")){ + map.put("flag","1"); + //如果是报废入库要查询对应的报废出库 + rows = WQL.getWO("PDA_ST_01").addParamMap(map).process().getResultJSONArray(0); + }else { + map.put("flag","2"); + //查询状态为生成的子卷包装关系对应表 + rows = WQL.getWO("PDA_ST_01").addParamMap(map).process().getResultJSONArray(0); + } + + JSONObject jo = new JSONObject(); + jo.put("data",rows); + jo.put("message","查询成功!"); + return jo; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql new file mode 100644 index 000000000..5ce2bc0b0 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_ST_01.wql @@ -0,0 +1,78 @@ +[交易说明] + 交易名: 手持接口 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.box_no TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + sub.package_box_SN, + sub.container_name, + sub.product_name, + sub.product_description, + sub.net_weight + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_SN = dis.box_no + WHERE + mst.bill_type = '1002' + AND + sub.package_box_SN = 输入.box_no + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT + package_box_SN, + container_name, + product_name, + product_description, + net_weight + FROM + pdm_bi_subpackagerelation sub + WHERE + sub.status = '0' + AND + sub.package_box_SN = 输入.box_no + ENDSELECT + ENDQUERY + ENDIF \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/sch.xls b/lms/nladmin-system/src/main/java/org/nl/wms/sch/sch.xls index 12ce07f07070bcbe0d5673c6a5c8238c0bcbded9..c5b6f1d584e5f66f2fc7ff520704e7ee9a105551 100644 GIT binary patch delta 18379 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 OAYkR)*1U&lmi{-5ceES;