From e83dacb5066a86db29dbdc232218d8aba6adc95f Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 02 八月 2024 13:34:04 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java | 4 + zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatService.java | 4 + zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java | 11 +++ zy-asrs-admin/src/components/order/index.vue | 45 ++++++++++++++ zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java | 4 + zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatServiceImpl.java | 19 ++++++ zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatFieldService.java | 6 ++ zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java | 7 ++ zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java | 35 +++++++++++ 9 files changed, 132 insertions(+), 3 deletions(-) diff --git a/zy-asrs-admin/src/components/order/index.vue b/zy-asrs-admin/src/components/order/index.vue index c5cdfde..ad5dfd0 100644 --- a/zy-asrs-admin/src/components/order/index.vue +++ b/zy-asrs-admin/src/components/order/index.vue @@ -8,6 +8,9 @@ import { formatMessage } from '@/utils/localeUtils.js'; import useTableSearch from '@/utils/tableUtils.jsx'; import ShowOrderDetlComponent from '@/components/orderDetl/show.vue'; +import { + DownOutlined, +} from "@ant-design/icons-vue"; const context = getCurrentInstance()?.appContext.config.globalProperties; const router = useRouter(); @@ -217,6 +220,27 @@ getPage() } +const handleSyncOrderClick = (e) => { + if (e.key == 'import') { + importTemplate() + } else if (e.key == 'export') { + exportTemplate() + } +} + +const importTemplate = () => { + //瀵煎叆妯℃澘 +} + +const exportTemplate = () => { + //妯℃澘瀵煎嚭 + postBlob('/api/order/exportTemplate', {}).then(result => { + const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' }); + window.location.href = window.URL.createObjectURL(blob); + return true; + }) +} + </script> <script> @@ -227,11 +251,30 @@ <template> <div> - <EditView ref="editChild" @tableReload="handleTableReload" :ioModel="ioModel == 'in' ? 1 : ioModel == 'out' ? 2 : null" /> + <EditView ref="editChild" @tableReload="handleTableReload" + :ioModel="ioModel == 'in' ? 1 : ioModel == 'out' ? 2 : null" /> <div class="table-header"> <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')" style="width: 200px;" @search="onSearch" /> <div class="table-header-right"> + <a-dropdown> + <template #overlay> + <a-menu @click="handleSyncOrderClick"> + <a-menu-item key="import"> + <UserOutlined /> + {{ formatMessage('page.order.import', '鍗曟嵁瀵煎叆') }} + </a-menu-item> + <a-menu-item key="export"> + <UserOutlined /> + {{ formatMessage('page.order.export.template', '瀵煎嚭妯℃澘') }} + </a-menu-item> + </a-menu> + </template> + <a-button> + {{ formatMessage('page.order.sync', '鍗曟嵁鍚屾') }} + <DownOutlined /> + </a-button> + </a-dropdown> <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button> </div> diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java index 5f01ec9..c9b7b0a 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java @@ -147,7 +147,9 @@ @PreAuthorize("hasAuthority('asrs:locDetl:list')") @PostMapping("/locDetl/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - ExcelUtil.build(ExcelUtil.create(locDetlService.list(), LocDetl.class), response); + List<LocDetl> locDetls = locDetlService.parseLocDetl(locDetlService.list()); + List<MatField> locFields = matFieldService.getLocFields(); + ExcelUtil.build(ExcelUtil.create(locDetls, LocDetl.class, locFields), response); } private void setLocDetlField(HashMap<String, Object> param, LocDetl locDetl) { diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java index 7b2efc6..eed691f 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java @@ -124,7 +124,9 @@ @PreAuthorize("hasAuthority('asrs:mat:list')") @PostMapping("/mat/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - ExcelUtil.build(ExcelUtil.create(matService.list(), Mat.class), response); + List<Mat> list = matService.parseMat(matService.list()); + List<MatField> matFields = matFieldService.getMatFields(); + ExcelUtil.build(ExcelUtil.create(list, Mat.class, matFields), response); } private void setMatField(HashMap<String, Object> param, Mat mat) { diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java index 537e784..7a1dbf9 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java @@ -167,4 +167,11 @@ ExcelUtil.build(ExcelUtil.create(list, Order.class), response); } + @PreAuthorize("hasAuthority('asrs:order:list')") + @PostMapping("/order/exportTemplate") + public void exportTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { + ArrayList<Order> list = new ArrayList<>(); + ExcelUtil.build(ExcelUtil.create(list, Order.class), response); + } + } diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatFieldService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatFieldService.java index 5a08b22..1348384 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatFieldService.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatFieldService.java @@ -3,8 +3,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.zy.asrs.wms.asrs.entity.MatField; +import java.util.List; + public interface MatFieldService extends IService<MatField> { void createView(); + List<MatField> getMatFields(); + + List<MatField> getLocFields(); + } diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatService.java index 9d20bb6..106caf8 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatService.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MatService.java @@ -3,6 +3,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.zy.asrs.wms.asrs.entity.Mat; +import java.util.List; + public interface MatService extends IService<Mat> { + List<Mat> parseMat(List<Mat> list); + } diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java index f149048..c598c3d 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java @@ -1,5 +1,6 @@ package com.zy.asrs.wms.asrs.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.wms.asrs.entity.LocDetlField; import com.zy.asrs.wms.asrs.mapper.MatFieldMapper; import com.zy.asrs.wms.asrs.entity.MatField; @@ -7,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; @Service("matFieldService") @@ -19,4 +21,13 @@ this.baseMapper.createLocDetlView(); } + @Override + public List<MatField> getMatFields() { + return this.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 0)); + } + + @Override + public List<MatField> getLocFields() { + return this.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1)); + } } diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatServiceImpl.java index 07f2e47..d4dd39a 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatServiceImpl.java @@ -1,12 +1,31 @@ package com.zy.asrs.wms.asrs.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.wms.asrs.entity.MatFieldValue; import com.zy.asrs.wms.asrs.mapper.MatMapper; import com.zy.asrs.wms.asrs.entity.Mat; +import com.zy.asrs.wms.asrs.service.MatFieldValueService; import com.zy.asrs.wms.asrs.service.MatService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; @Service("matService") public class MatServiceImpl extends ServiceImpl<MatMapper, Mat> implements MatService { + @Autowired + private MatFieldValueService matFieldValueService; + + @Override + public List<Mat> parseMat(List<Mat> list) { + for (Mat mat : list) { + List<MatFieldValue> matFieldValueList = matFieldValueService.list(new LambdaQueryWrapper<MatFieldValue>() + .eq(MatFieldValue::getMatId, mat.getId())); + mat.syncField(matFieldValueList); + } + return list; + } } diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java index fbeb87b..1fc6dce 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/ExcelUtil.java @@ -1,6 +1,7 @@ package com.zy.asrs.wms.utils; import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.wms.asrs.entity.MatField; import io.swagger.annotations.ApiModelProperty; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; @@ -15,6 +16,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Map; /** * Created by vincent on 2/17/2024 @@ -32,6 +34,10 @@ } public static <T> Workbook create(List<T> list, Class<T> clz) { + return create(list, clz, null); + } + + public static <T> Workbook create(List<T> list, Class<T> clz, List<MatField> dynamicFields) { HSSFWorkbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet(clz.getSimpleName()); @@ -50,6 +56,14 @@ } header.createCell(headerIdx).setCellValue(memo); headerIdx++; + } + + //鍔ㄦ�佸瓧娈� + if(dynamicFields != null){ + for (MatField field : dynamicFields) { + header.createCell(headerIdx).setCellValue(field.getDescribe()); + headerIdx++; + } } int rowIndex = 1; @@ -81,6 +95,27 @@ } cellIndex++; } + + //鍔ㄦ�佸瓧娈� + if(dynamicFields != null){ + for (Field field : fields) { + if (field.getName().equals("dynamicFields")) { + try { + Map<String, Object> map = (Map<String, Object>) field.get(t); + for (MatField matField : dynamicFields) { + Object value = map.get(matField.getName()); + if(value != null){ + row.createCell(cellIndex).setCellValue(value.toString()); + cellIndex++; + } + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } + } for (int i = 0; i <= fields.length; i++) { -- Gitblit v1.9.1