From 5b71a382bd72a3b32cf793dcbde54b6f2a82b9e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Mon, 18 Dec 2023 11:28:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B6=E5=93=81=E6=8B=86=E8=A7=A3=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductdismantleRecordMainController.java | 60 ++++++++++--- ...ductdismantleRecordDetailaExportReqVO.java | 4 + ...roductdismantleRecordDetailaPageReqVO.java | 3 + .../vo/ProductdismantleRecordMainExcelVO.java | 85 ++++++++++++++++--- .../ProductdismantleRecordMainConvert.java | 12 +++ .../ProductdismantleRecordDetailaMapper.java | 7 ++ .../ProductdismantleRecordMainMapper.java | 4 + .../ProductdismantleRecordDetailaService.java | 1 + ...ductdismantleRecordDetailaServiceImpl.java | 5 ++ .../ProductdismantleRecordMainService.java | 1 + ...ProductdismantleRecordMainServiceImpl.java | 5 ++ 11 files changed, 166 insertions(+), 21 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java index 61b2cc2e..eeb59505 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java @@ -3,13 +3,17 @@ package com.win.module.wms.controller.productdismantleRecord; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.productdismantleRecord.vo.*; import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordMainConvert; +import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.productdismantleRecord.ProductdismantleRecordDetailaService; import com.win.module.wms.service.productdismantleRecord.ProductdismantleRecordMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -22,8 +26,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.util.Collection; -import java.util.List; +import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -34,6 +37,8 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Validated public class ProductdismantleRecordMainController { + @Resource + private ProductdismantleRecordDetailaService productdismantleRecordDetailaService; @Resource private ProductdismantleRecordMainService productdismantleRecordMainService; @@ -103,22 +108,55 @@ public class ProductdismantleRecordMainController { } return success(result); } - + + private List getExcelVo(List list, Map mapDropDown) { + String[] useOnTheWayLocation = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(20, useOnTheWayLocation); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(35, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(43, uom); + List resultList = new ArrayList<>(); + // 导出 + for(ProductdismantleRecordMainDO mainDO : list) { + List subList = productdismantleRecordDetailaService.selectList(mainDO.getId()); + for(ProductdismantleRecordDetailaDO detailDO : subList) { + ProductdismantleRecordMainExcelVO vo = ProductdismantleRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + vo.setUpdater(user.getNickname()); + resultList.add(vo); + } + } + return resultList; + } + @GetMapping("/export-excel") - @Operation(summary = "导出制品拆解记录主 Excel") + @Operation(summary = "导出制品拆解记录 Excel") @PreAuthorize("@ss.hasPermission('wms:productdismantle-record-main:export')") @OperateLog(type = EXPORT) public void exportProductdismantleRecordMainExcel(@Valid ProductdismantleRecordMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { + List list = productdismantleRecordMainService.getProductdismantleRecordMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = ProductdismantleRecordMainConvert.INSTANCE.convertList02(list); - for(ProductdismantleRecordMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "制品拆解记录主.xls", "数据", ProductdismantleRecordMainExcelVO.class, datas); + ExcelUtils.write(response, "制品拆解记录.xlsx", "制品拆解记录", ProductdismantleRecordMainExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出制品拆解记录 Excel") + @PreAuthorize("@ss.hasPermission('wms:productdismantle-record-main:export')") + @OperateLog(type = EXPORT) + public void exportProductdismantleRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = productdismantleRecordMainService.getProductdismantleRecordMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "制品拆解记录.xlsx", "制品拆解记录", ProductdismantleRecordMainExcelVO.class, resultList, mapDropDown); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaExportReqVO.java index 43c682fe..363f6de4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaExportReqVO.java @@ -99,4 +99,8 @@ public class ProductdismantleRecordDetailaExportReqVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private String masterId; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaPageReqVO.java index d60f7820..f065091c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordDetailaPageReqVO.java @@ -101,4 +101,7 @@ public class ProductdismantleRecordDetailaPageReqVO extends PageParam { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainExcelVO.java index 5ce371ae..267f11c8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainExcelVO.java @@ -3,6 +3,7 @@ package com.win.module.wms.controller.productdismantleRecord.vo; import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; import lombok.Data; import java.time.LocalDateTime; @@ -49,10 +50,6 @@ public class ProductdismantleRecordMainExcelVO { @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "接口类型", converter = DictConvert.class) - @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String interfaceType; - @ExcelProperty("单据号") private String number; @@ -68,20 +65,88 @@ public class ProductdismantleRecordMainExcelVO { @ExcelProperty("创建者Id") private String creator; - @ExcelProperty("代码") - private String code; - @ExcelProperty("从仓库代码") private String fromWarehouseCode; - @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty("从库位类型范围") private String fromLocationTypes; @ExcelProperty("从库区代码范围") private String fromAreaCodes; - @ExcelProperty("是否可用") + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String available; + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者Id") + private String updater; + + @ExcelProperty("生产线代码") + private String productionLineCode; + + @ExcelProperty("工位代码") + private String workStationCode; + + @ExcelProperty("工序代码") + private String processCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("生产日期") + private String produceDate; + + @ExcelProperty("过期日期") + private String expireDate; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCode; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("BOM版本") + private String bomVersion; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordMainConvert.java index 4464e47c..5abdc2e4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordMainConvert.java @@ -5,8 +5,11 @@ import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleR import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainExcelVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainRespVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import java.util.List; @@ -33,4 +36,13 @@ public interface ProductdismantleRecordMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + ProductdismantleRecordMainExcelVO convert(ProductdismantleRecordMainDO mainDO, ProductdismantleRecordDetailaDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordDetailaMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordDetailaMapper.java index d5dbfe36..3cc6e02c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordDetailaMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordDetailaMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaExportReqVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaPageReqVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface ProductdismantleRecordDetailaMapper extends BaseMapperX selectPage(ProductdismantleRecordDetailaPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductdismantleRecordDetailaDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductdismantleRecordDetailaDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(ProductdismantleRecordDetailaDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductdismantleRecordDetailaDO::getWorkStationCode, reqVO.getWorkStationCode()) @@ -58,6 +60,7 @@ public interface ProductdismantleRecordDetailaMapper extends BaseMapperX selectList(ProductdismantleRecordDetailaExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductdismantleRecordDetailaDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductdismantleRecordDetailaDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(ProductdismantleRecordDetailaDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductdismantleRecordDetailaDO::getWorkStationCode, reqVO.getWorkStationCode()) @@ -88,4 +91,8 @@ public interface ProductdismantleRecordDetailaMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(ProductdismantleRecordDetailaDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordMainMapper.java index 9dfbd0a9..a3cb7c99 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRecord/ProductdismantleRecordMainMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainExportReqVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainPageReqVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; import org.apache.ibatis.annotations.Mapper; @@ -76,4 +77,7 @@ public interface ProductdismantleRecordMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaService.java index 8f2625b1..b19e19f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaService.java @@ -82,4 +82,5 @@ public interface ProductdismantleRecordDetailaService { */ PageResult getProductdismantleRecordDetailaSenior(CustomConditions conditions); + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaServiceImpl.java index 8565aa54..f1aa1eb0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordDetailaServiceImpl.java @@ -87,4 +87,9 @@ public class ProductdismantleRecordDetailaServiceImpl implements Productdismantl return productdismantleRecordDetailaMapper.selectSenior(conditions); } + @Override + public List selectList(Long masterId) { + return productdismantleRecordDetailaMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java index 9c8fc57a..4f25c323 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java @@ -82,4 +82,5 @@ public interface ProductdismantleRecordMainService { */ List getProductdismantleRecordMainList(ProductdismantleRecordMainExportReqVO exportReqVO); + List getProductdismantleRecordMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java index 8ecc5e97..3ecf30fa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java @@ -88,4 +88,9 @@ public class ProductdismantleRecordMainServiceImpl implements ProductdismantleRe return productdismantleRecordMainMapper.selectList(exportReqVO); } + @Override + public List getProductdismantleRecordMainList(CustomConditions conditions) { + return productdismantleRecordMainMapper.selectSeniorList(conditions); + } + }