diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java index e01d01d5..cb11aef4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java @@ -13,6 +13,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -116,4 +117,10 @@ public class StatisticalReportController { query4(whereJson),HttpStatus.OK); } + @ApiOperation("导出数据") + @GetMapping(value = "/download") + public void download(HttpServletResponse response, @RequestParam Map whereJson){ + statisticalReportService.download(response, whereJson); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java index 48f85c2c..9b444f76 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java @@ -3,6 +3,7 @@ package org.nl.wms.statistics.service; import com.alibaba.fastjson.JSONArray; import org.springframework.data.domain.Pageable; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -57,4 +58,11 @@ public interface StatisticalReportService { * @return Map */ Map confirmOutStore(JSONArray jsonObject); + + /** + * 导出外协数据 + * @param response + * @param whereJson + */ + void download(HttpServletResponse response,Map whereJson); } 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 9fda1163..7550cf7c 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 @@ -8,21 +8,29 @@ 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.apache.commons.lang3.StringUtils; import org.nl.exception.BadRequestException; +import org.nl.modules.system.domain.Dept; +import org.nl.modules.system.repository.DeptRepository; +import org.nl.modules.system.service.DeptService; import org.nl.modules.system.service.UserService; import org.nl.modules.system.service.dto.UserDto; import org.nl.pda.exception.PdaRequestException; +import org.nl.utils.FileUtil; import org.nl.utils.SecurityUtils; import org.nl.wms.common.util.DataAuthUtil; import org.nl.wms.statistics.service.StatisticalReportService; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.nl.wql.util.WqlUtil; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; @@ -32,6 +40,7 @@ import java.util.stream.Collectors; public class StatisticalReportServiceImpl implements StatisticalReportService { private final UserService userService; + private final DeptRepository deptService; @Override public Map sendOutQuery(Map whereJson, Pageable page) { @@ -70,7 +79,7 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { map.put("is_send0", "0"); } }else if (StrUtil.isEmpty(is_send)) { - map.put("is_send0", "0"); +// map.put("is_send0", "0"); } map.put("flag", "5"); JSONObject jo = WQL.getWO("statistical_report_query_02").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "send_date,material_code,pcsn"); @@ -603,4 +612,36 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { returnjo.put("desc", "操作成功!"); return returnjo; } + + @Override + @SneakyThrows + public void download(HttpServletResponse response, Map whereJson) { + Map result = this.sendOutQuery(new HashMap(), PageRequest.of(0,99999)); + Object content = result.get("content"); + if (content !=null){ + List depts = deptService.findAll(); + Map deptInfo = depts.stream().collect(Collectors.toMap(Dept::getId, Dept::getName)); + JSONArray list = (JSONArray) content; + List> excelData = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + Map dtl_map = new LinkedHashMap<>(); + JSONObject row = (JSONObject)list.get(i); + + dtl_map.put("序号", i+1); + dtl_map.put("物料编码", row.getString("material_code")); + dtl_map.put("批次号", row.getString("pcsn")); + dtl_map.put("重量", row.getString("total_qty")); + dtl_map.put("桶数", row.getString("num_bucket")); + dtl_map.put("计划发货时间", row.getString("send_date")); + String clientName = ""; + if (!StringUtils.isEmpty(row.getString("org_id"))){ + clientName = deptInfo.get(row.getLong("org_id")); + } + dtl_map.put("客户名称", clientName); + dtl_map.put("备注", ""); + excelData.add(dtl_map); + } + FileUtil.downloadExcel(excelData, response); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql index f0624acf..01f9b85e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql @@ -195,7 +195,6 @@ SELECT procedureoffline2.num_bucket, procedureoffline2.total_qty, - procedureoffline.diskrecord_id, procedureoffline.storagevehicle_code, procedureoffline.is_send AS is_send, procedureoffline.send_name AS send_name, @@ -258,6 +257,7 @@ OPTION 输入.is_send12 <> "" (procedureoffline.is_send = 输入.is_send12) ENDOPTION + GROUP BY workorder.workorder_id,workorder.pcsn,procedureoffline.storagevehicle_code ENDSELECT ENDPAGEQUERY ENDIF diff --git a/mes/qd/src/views/wms/statistics/sendOutQuery/BucketDialog.vue b/mes/qd/src/views/wms/statistics/sendOutQuery/BucketDialog.vue new file mode 100644 index 00000000..d8f0cf4d --- /dev/null +++ b/mes/qd/src/views/wms/statistics/sendOutQuery/BucketDialog.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/mes/qd/src/views/wms/statistics/sendOutQuery/index.vue b/mes/qd/src/views/wms/statistics/sendOutQuery/index.vue index f5aa171d..9ba05b62 100644 --- a/mes/qd/src/views/wms/statistics/sendOutQuery/index.vue +++ b/mes/qd/src/views/wms/statistics/sendOutQuery/index.vue @@ -121,6 +121,16 @@ > 确认发货 + + 导出Excel + - + + + @@ -154,6 +168,7 @@ + @@ -165,11 +180,14 @@ import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' import report from '@/api/wms/statistics/report' import workorder from '@/api/wms/pdm/workorder' +import BucketDialog from '@/views/wms/statistics/sendOutQuery/BucketDialog' +import { download } from '@/api/data' +import { downloadFile } from '@/utils' export default { name: 'SendOutQuery', dicts: ['workorder_status', 'ST_INV_TYPE_RC'], - components: { pagination, crudOperation, rrOperation }, + components: { pagination, crudOperation, rrOperation, BucketDialog }, mixins: [presenter(), header(), crud()], cruds() { return CRUD({ @@ -181,7 +199,7 @@ export default { // 每页数据条数 size: 20 }, - query: { is_send: '1' }, + query: { }, crudMethod: { ...crudInspectionsheetmst }, optShow: { add: false, @@ -193,12 +211,13 @@ export default { }, data() { return { + bucketDialog: false, statusList: [], resultList: [], currentRow: {}, Depts: [], resultPutDialog: false, - openParam: {}, + openParam: null, query_flag: true, passList: [ { 'label': '未出库', 'value': '0' }, @@ -221,6 +240,17 @@ export default { checkboxT(row) { return row.is_send === '1' }, + downExcel() { + if (this.currentRow !== null) { + crud.downloadLoading = true + download('/api/statistical/download', this.crud.query).then(result => { + downloadFile(result, '外协发货单', 'xlsx') + crud.downloadLoading = false + }).catch(() => { + crud.downloadLoading = false + }) + } + }, typeChange() { this.checkrows = this.$refs.table.selection this.$confirm('是否确认发货?', '提示', { @@ -233,6 +263,10 @@ export default { }) }) }, + openBucket(row) { + this.openParam = row.storagevehicle_code + this.bucketDialog = true + }, orgFormat(row) { for (const item of this.Depts) { if (item.id === row.org_id) {