From 589971386b2bb93a9c8f41bdb50189f8195d8789 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 28 Aug 2024 15:06:26 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E6=88=90=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E5=AE=A1=E6=A0=B8=E7=95=8C=E9=9D=A2=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProductInstorServiceImpl.java | 4 +- .../instor/rest/ProductScrapController.java | 8 ++ .../instor/service/ProductScrapService.java | 3 + .../service/impl/ProductScrapServiceImpl.java | 77 ++++++++++++++++++- .../st/instor/wql/QST_IVT_PRODUCTSCRAP.wql | 10 ++- .../wms/st/inStor/productscrap/index.vue | 28 +++++++ 6 files changed, 122 insertions(+), 8 deletions(-) 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 index dfb335dfe..7d0f36597 100644 --- 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 @@ -369,7 +369,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { /* * 如果有实际重量则需要判断重量是否超标 */ - // 重量阈值系统参数 + /* // 重量阈值系统参数 double weight_sys = Double.parseDouble(SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_sys").getValue()); // 木箱系统重量 double box_weight = sub_jo.getDoubleValue("box_weight"); @@ -392,7 +392,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { } } - } + }*/ JSONArray now_dis_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "18").addParam("box_no", map.get("box_no")).process().getResultJSONArray(0); if (now_dis_rows.size() > 0) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java index 624e7af18..6ab05a641 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java @@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Map; @RestController @@ -91,4 +93,10 @@ public class ProductScrapController { return new ResponseEntity<>(productScrapService.importExcel(file, request),HttpStatus.OK); } + @Log("导出数据") + @GetMapping(value = "/download") + public void download(@RequestParam Map map, HttpServletResponse response) { + productScrapService.download(map, response); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java index 06937faec..b0d7f0c0f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Map; @@ -76,4 +77,6 @@ public interface ProductScrapService { * @return */ ArrayList importExcel(MultipartFile file, HttpServletRequest request); + + void download(Map map, HttpServletResponse response); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index e54c00b07..ec4f3508c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -12,10 +12,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; +import org.nl.modules.common.utils.FileUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; @@ -33,11 +35,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -543,4 +543,73 @@ public class ProductScrapServiceImpl implements ProductScrapService { return resultList; } + @Override + @SneakyThrows + public void download(Map whereJson, HttpServletResponse response) { + HashMap map = new HashMap<>(whereJson); + map.put("flag", "1"); + if (StrUtil.isNotEmpty(map.get("bill_code"))) { + map.put("bill_code", "%" + map.get("bill_code") + "%"); + } + if (StrUtil.isNotEmpty(map.get("material_code"))) { + map.put("material_code", "%" + map.get("material_code") + "%"); + } + if (StrUtil.isNotEmpty(map.get("pcsn"))) { + map.put("pcsn", (String) whereJson.get("pcsn")); + } + //获取人员对应的仓库 + UserStorServiceImpl userStorService = new UserStorServiceImpl(); + String in_stor_id = userStorService.getInStor(); + + if (ObjectUtil.isNotEmpty(in_stor_id)) { + map.put("in_stor_id", in_stor_id); + } + + // 查询主表 + List listMst = WQL.getWO("QST_IVT_PRODUCTSCRAP") + .addParamMap(map).process().getResultJSONArray(0) + .toJavaList(JSONObject.class); + + // 筛选出主表标识 + String scrap_id_in = listMst.stream() + .map(row -> row.getString("scrap_id")) + .collect(Collectors.joining("','")); + + JSONArray content = WQL.getWO("QST_IVT_PRODUCTSCRAP") + .addParam("flag", "2") + .addParam("scrap_id_in", "('" + scrap_id_in + "')") + .process().getResultJSONArray(0); + + List> list = new ArrayList<>(); + for (int i = 0; i < content.size(); i++) { + JSONObject object = content.getJSONObject(i); + + Map mp = new LinkedHashMap<>(); + mp.put("单据号", object.getString("scrap_code")); + mp.put("产品编码", object.getString("material_code")); + mp.put("产品名称", object.getString("material_name")); + mp.put("木箱号", object.getString("storagevehicle_code")); + mp.put("不合格品批次号", object.getString("pcsn")); + mp.put("不合格品重量(KG)", NumberUtil.round(object.getString("qty"), 2)); + + String fail_source = object.getString("fail_source"); + if (fail_source.equals("1")) { + mp.put("不合格品来源", "原辅材料"); + } else if (fail_source.equals("2")) { + mp.put("不合格品来源", "半成品"); + } else if (fail_source.equals("3")) { + mp.put("不合格品来源", "成品检查"); + } else if (fail_source.equals("4")) { + mp.put("不合格品来源", "出货检查"); + } else if (fail_source.equals("5")) { + mp.put("不合格品来源", "库存"); + } else if (fail_source.equals("6")) { + mp.put("不合格品来源", "客户投诉"); + } + mp.put("不合格品缺陷描述", object.getString("remark")); + list.add(mp); + } + FileUtil.downloadExcel(list, response); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql index cae98e5cd..9eaa2da3c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql @@ -23,6 +23,7 @@ 输入.pcsn TYPEAS s_string 输入.scrap_id TYPEAS s_string 输入.in_stor_id TYPEAS f_string + 输入.scrap_id_in TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -91,7 +92,8 @@ dtl.*, dtl.package_box_sn AS storagevehicle_code, mater.material_code, - mater.material_name + mater.material_name, + mst.scrap_code FROM ST_IVT_ProductScrapDtl dtl LEFT JOIN ST_IVT_ProductScrapMst mst ON mst.scrap_id = dtl.scrap_id @@ -102,11 +104,15 @@ dtl.scrap_id = 输入.scrap_id ENDOPTION + OPTION 输入.scrap_id_in <> "" + dtl.scrap_id IN 输入.scrap_id_in + ENDOPTION + OPTION 输入.scrapdtl_id <> "" dtl.scrapdtl_id = 输入.scrapdtl_id ENDOPTION - order by dtl.seq_no + order by mst.scrap_code, dtl.seq_no ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue index 46295ba90..859bf71fb 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue @@ -118,6 +118,16 @@ > 不通过 + + 导出Excel + { + downloadFile(result, '成品报废审核', 'xlsx') + crud.downloadLoading = false + }).catch(() => { + crud.downloadLoading = false + }) + } } } }