From 18acc68656bfee39d9faf811be34cf0e2a8c776d Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Tue, 18 Oct 2022 11:40:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/pcs/rest/ReceivemstController.java | 9 ++ .../nl/wms/pcs/service/ReceivemstService.java | 7 ++ .../service/impl/ReceivemstServiceImpl.java | 91 ++++++++++++++++++- .../nl/wms/pcs/wql/QPCS_RC_RECEIVEMST01.wql | 76 ++++++++++++++++ mes/qd/src/views/wms/pcs/receivemst/index.vue | 35 +++++-- 5 files changed, 208 insertions(+), 10 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/rest/ReceivemstController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/rest/ReceivemstController.java index ceec8b71..44764dad 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/rest/ReceivemstController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/rest/ReceivemstController.java @@ -17,9 +17,13 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; + +import java.io.IOException; import java.util.Map; import lombok.extern.slf4j.Slf4j; +import javax.servlet.http.HttpServletResponse; + /** * @author Liuxy * @date 2021-12-15 @@ -133,4 +137,9 @@ public class ReceivemstController { receivemstService.createQc(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + @ApiOperation("导出数据") + @GetMapping(value = "/download") + public void download(HttpServletResponse response, ReceivemstQueryDto dto) throws IOException { + receivemstService.download(dto, response); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/ReceivemstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/ReceivemstService.java index 632e378e..f13c6240 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/ReceivemstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/ReceivemstService.java @@ -101,4 +101,11 @@ public interface ReceivemstService { * @param whereJson/ */ void createQc(Map whereJson); + /** + * + * @param whereJson + * @param response + * @throws IOException + */ + void download(ReceivemstQueryDto dto, HttpServletResponse response) throws IOException; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java index 7fa72abf..bf779bb4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.pcs.service.impl; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; @@ -16,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.exception.BadRequestException; import org.nl.modules.security.service.dto.JwtUserDto; import org.nl.modules.system.util.CodeUtil; +import org.nl.utils.FileUtil; import org.nl.utils.SecurityUtils; import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.master.service.ClassstandardService; @@ -34,9 +36,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; /** * @author Liuxy @@ -539,4 +541,87 @@ public class ReceivemstServiceImpl implements ReceivemstService { } + @Override + public void download(ReceivemstQueryDto dto, HttpServletResponse response) throws IOException { + + //根据登陆人员的所在部门查找对应的计划 + String user_id = String.valueOf(SecurityUtils.getCurrentUserId()); + JSONObject jsonUser = WQLObject.getWQLObject("sys_user").query("user_id = '" + user_id + "'").uniqueResult(0); + + String begin_time = dto.getBegin_time(); + String end_time = dto.getEnd_time(); + String vbillcode = dto.getVbillcode(); + String receive_code = dto.getReceive_code(); + String material_code = dto.getMaterial_code(); + String supp_code = dto.getSupp_code(); + String pcsn = dto.getPcsn(); + String[] statusArr = dto.getStatus(); + String status = "('"; + if (ObjectUtil.isNotEmpty(statusArr)) { + for (int i = 0; i < statusArr.length; i++) { + + if ((i+1) == statusArr.length) { + status = status +statusArr[i] + "')"; + } else { + status = status + statusArr[i] + "','"; + } + } + } + HashMap map = new HashMap<>(); + map.put("flag", "11"); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + map.put("vbillcode", vbillcode); + map.put("receive_code", receive_code); + map.put("supp_code", supp_code); + if (ObjectUtil.isNotEmpty(statusArr)) { + map.put("status", status); + } + if (ObjectUtil.isNotEmpty(pcsn)) { + map.put("pcsn", "%"+pcsn+"%"); + } + if (ObjectUtil.isNotEmpty(material_code)) { + map.put("material_code", "%"+material_code+"%"); + } + JSONArray rows = WQL.getWO("QPCS_RC_RECEIVEMST01").addParamMap(map).process().getResultJSONArray(0); + + List> list = new ArrayList<>(); + for (int i = 0; i < rows.size(); i++) { + JSONObject jo = rows.getJSONObject(i); + Map dtl_map = new LinkedHashMap<>(); + String status2 = jo.getString("status"); + if(status2.equals("10")){ + dtl_map.put("状态", "生成"); + }else if(status2.equals("20")){ + dtl_map.put("状态", "提交"); + }else if(status2.equals("30")){ + dtl_map.put("状态", "到货中"); + }else if(status2.equals("99")){ + dtl_map.put("状态", "确认"); + } + dtl_map.put("订单编号", jo.getString("vbillcode")); + dtl_map.put("到货单号", jo.getString("receive_code")); + dtl_map.put("供应商", jo.getString("supp_name")); + dtl_map.put("物料编码", jo.getString("material_code")); + dtl_map.put("物料名称", jo.getString("material_name")); + dtl_map.put("批次号", jo.getString("pcsn")); + + String is_no = jo.getString("is_no"); + if (StrUtil.isEmpty(is_no)) { + dtl_map.put("质检单是否已生成", "否"); + }else{ + dtl_map.put("质检单是否已生成", "是"); + } + + dtl_map.put("到货重量", jo.getString("receive_qty")); + dtl_map.put("入库重量", jo.getString("instor_qty")); + dtl_map.put("剩余重量", jo.getString("surplus_qty")); + dtl_map.put("单位", jo.getString("qty_unit_name")); + dtl_map.put("创建人", jo.getString("input_optname")); + dtl_map.put("到货日期", jo.getString("receive_date")); + list.add(dtl_map); + } + FileUtil.downloadExcel(list, response); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_RC_RECEIVEMST01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_RC_RECEIVEMST01.wql index fe65d9ea..0d45b65e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_RC_RECEIVEMST01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_RC_RECEIVEMST01.wql @@ -124,6 +124,82 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + dtl.*, + supp.supp_name, + mater.material_code, + mater.material_name, + mst.receive_date, + mst.input_optname, + mst.source_type, + mst.create_mode, + mst.receive_type, + mst.stor_id, + mst.stor_name, + mst.remark, + mst.dtl_num, + mst.total_qty, + proc.vbillcode, + ext.standard_weight, + (dtl.receive_qty - dtl.instor_qty) AS surplus_qty, + SUBSTR(proc.vbillcode,1,6) AS order_code_1, + SUBSTR(proc.vbillcode,8,10) AS order_code_2, + sheetMst.inspection_id AS is_no + FROM + PCS_RC_ReceiveDtl dtl + LEFT JOIN pcs_rc_receivemst mst ON mst.receive_id = dtl.receive_id + LEFT JOIN MD_ME_MaterialBase mater ON mater.material_id = dtl.material_id + LEFT JOIN PCS_IF_PurchaseOrderProc proc ON proc.id = dtl.source_billdtl_id + LEFT JOIN MD_CS_SUPPLIERBASE supp ON proc.vend_id = supp.ext_id + LEFT JOIN MD_ME_StockMaterialExt ext ON mater.material_id = ext.material_id + LEFT JOIN QL_TEST_InspectionSheetDtl sheetDtl ON dtl.material_id = sheetDtl.material_id AND dtl.pcsn = sheetDtl.pcsn + LEFT JOIN QL_TEST_InspectionSheetMst sheetMst ON sheetMst.inspection_id = sheetDtl.inspection_id and sheetMst.is_delete = '0' + WHERE + mst.is_delete = '0' + + OPTION 输入.dept_id <> "" + mst.sysdeptid = 输入.dept_id + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.receive_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.receive_date <= 输入.end_time + ENDOPTION + + OPTION 输入.vbillcode <> "" + proc.vbillcode = 输入.vbillcode + ENDOPTION + + OPTION 输入.receive_code <> "" + dtl.receive_code = 输入.receive_code + ENDOPTION + + OPTION 输入.material_code <> "" + ( mater.material_code like "%" 输入.material_code "%" or + mater.material_name like "%" 输入.material_code "%") + ENDOPTION + + OPTION 输入.pcsn <> "" + dtl.pcsn like 输入.pcsn + ENDOPTION + + OPTION 输入.supp_code <> "" + ( supp.supp_code like "%" 输入.supp_code "%" or + supp.supp_name like "%" 输入.supp_code "%") + ENDOPTION + + OPTION 输入.status <> "" + dtl.status in 输入.status + ENDOPTION + order by order_code_1 DESC,order_code_2 ASC,mst.receive_code ASC + ENDSELECT + ENDQUERY + ENDIF IF 输入.flag = "2" PAGEQUERY diff --git a/mes/qd/src/views/wms/pcs/receivemst/index.vue b/mes/qd/src/views/wms/pcs/receivemst/index.vue index 46abc2c0..0d9b5925 100644 --- a/mes/qd/src/views/wms/pcs/receivemst/index.vue +++ b/mes/qd/src/views/wms/pcs/receivemst/index.vue @@ -134,6 +134,16 @@ > 打印 + + 导出excel + - - + + - - - - - + + + + + @@ -228,6 +238,8 @@ import pagination from '@crud/Pagination' import DateRangePicker from '@/components/DateRangePicker' import AddShowDialog from '@/views/wms/pcs/receivemst/AddShowDialog' import { getLodop } from '@/assets/js/lodop/LodopFuncs' +import { download } from '@/api/data' +import { downloadFile } from '@/utils' export default { name: 'Receivemst', @@ -331,6 +343,15 @@ export default { this.printDialog = true this.acuTotal() }, + downdtl() { + crud.downloadLoading = true + download('/api/receivemst/download', this.crud.query).then(result => { + downloadFile(result, '到货通知单', 'xlsx') + crud.downloadLoading = false + }).catch(() => { + crud.downloadLoading = false + }) + }, print() { if (this.form.print_qty <= 0) { this.crud.notify('数量不能为0!', CRUD.NOTIFICATION_TYPE.INFO)