diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/InventoryinitRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/InventoryinitRecordMainController.java index ab2989ab..7f81fe31 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/InventoryinitRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/InventoryinitRecordMainController.java @@ -1,8 +1,17 @@ package com.win.module.wms.controller.inventoryinitRecord; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordDetailDO; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inventoryinitRecord.InventoryinitRecordDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -39,6 +48,8 @@ public class InventoryinitRecordMainController { @Resource private InventoryinitRecordMainService inventoryinitRecordMainService; + @Resource + private InventoryinitRecordDetailService inventoryinitRecordDetailService; @Resource private AdminUserApi userApi; @@ -108,17 +119,65 @@ public class InventoryinitRecordMainController { @Operation(summary = "导出库存初始化记录主 Excel") @PreAuthorize("@ss.hasPermission('wms:inventoryinit-record-main:export')") @OperateLog(type = EXPORT) - public void exportInventoryinitRecordMainExcel(@Valid InventoryinitRecordMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportInventoryinitRecordMainExcel(@Valid InventoryinitRecordMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = inventoryinitRecordMainService.getInventoryinitRecordMainList(exportReqVO); // 导出 Excel - List datas = InventoryinitRecordMainConvert.INSTANCE.convertList02(list); - for(InventoryinitRecordMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "库存初始化记录主.xls", "数据", InventoryinitRecordMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] outTransactionType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(3, outTransactionType); + String[] inTransactionType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(4, inTransactionType); + String[] interfaceType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE); + mapDropDown.put(10, interfaceType); + String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(16, available); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(25, inventoryStatus); + String[] stdPackUnit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(30, stdPackUnit); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(38, uom); + List resultList = new ArrayList<>(); + // 导出 + for(InventoryinitRecordMainDO mainDO : list) { + List subList = inventoryinitRecordDetailService.selectList(mainDO.getId()); + for(InventoryinitRecordDetailDO detailDO : subList) { + InventoryinitRecordMainExcelVO vo = InventoryinitRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "库存初始化记录主.xls", "数据", InventoryinitRecordMainExcelVO.class, datas); + return resultList; } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出采购收货申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')") + @OperateLog(type = EXPORT) + public void exportInventoryinitRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = inventoryinitRecordMainService.getInventoryinitRecordSeniorMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "采购收货申请主.xlsx", "采购收货申请数据", InventoryinitRecordMainExcelVO.class, resultList, mapDropDown); + } + + + + + + + + + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordDetailPageReqVO.java index 9348adea..90d7a93c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordDetailPageReqVO.java @@ -111,4 +111,7 @@ public class InventoryinitRecordDetailPageReqVO extends PageParam { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordMainExcelVO.java index 90fd5164..7d1691ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRecord/vo/InventoryinitRecordMainExcelVO.java @@ -1,7 +1,11 @@ package com.win.module.wms.controller.inventoryinitRecord.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.win.module.wms.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -22,43 +26,51 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class InventoryinitRecordMainExcelVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("申请单号") private String requestNumber; @ExcelProperty("仓库代码") private String warehouseCode; - @ExcelProperty("出库事务类型") + @ExcelProperty(value = "出库事务类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.LOCATION_TYPE) private String outTransactionType; - @ExcelProperty("入库事务类型") + @ExcelProperty(value = "入库事务类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.LOCATION_TYPE) private String inTransactionType; @ExcelProperty("执行时间") + @ColumnWidth(value = 25) private LocalDateTime executeTime; @ExcelProperty("生效日期") + @ColumnWidth(value = 25) private LocalDateTime activeDate; @ExcelProperty("申请时间") + @ColumnWidth(value = 25) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 25) private LocalDateTime dueTime; @ExcelProperty("部门") private String departmentCode; @ExcelProperty(value = "接口类型", converter = DictConvert.class) - @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.INTERFACE_TYPE) private String interfaceType; @ExcelProperty("代码") private String code; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -66,12 +78,90 @@ public class InventoryinitRecordMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 25) private LocalDateTime createTime; @ExcelProperty("创建者Id") private String creator; - @ExcelProperty("是否可用") + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String available; + @ExcelProperty("货主代码") + private String ownerCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("替代批次") + private String altBatch; + + @ExcelProperty("到货日期") + @ColumnWidth(value = 25) + private LocalDateTime arriveDate; + + @ExcelProperty("生产日期") + @ColumnWidth(value = 25) + private LocalDateTime produceDate; + + @ExcelProperty("过期日期") + @ColumnWidth(value = 25) + private LocalDateTime expireDate; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("库位代码") + private String locationCode; + + @ExcelProperty("库位组代码") + private String locationGroupCode; + + @ExcelProperty("库区代码") + private String areaCode; + + @ExcelProperty("标包数量") + private BigDecimal stdPackQty; + + @ExcelProperty(value = "标包单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String stdPackUnit; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("单价") + private BigDecimal singlePrice; + + @ExcelProperty("金额") + private BigDecimal amount; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty("物品代码") + private String itemCode; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRecord/InventoryinitRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRecord/InventoryinitRecordMainConvert.java index 9e0f822f..fc19246b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRecord/InventoryinitRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRecord/InventoryinitRecordMainConvert.java @@ -8,7 +8,13 @@ import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordM import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainExcelVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainRespVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainUpdateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; +import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordMainDO; @@ -34,4 +40,15 @@ public interface InventoryinitRecordMainConvert { 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.interfaceType", target = "interfaceType"), + @Mapping(source = "mainDO.code", target = "code"), + }) + InventoryinitRecordMainExcelVO convert(InventoryinitRecordMainDO mainDO, InventoryinitRecordDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordDetailMapper.java index c0b6dc64..c236560c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordDetailMapper.java @@ -22,6 +22,7 @@ public interface InventoryinitRecordDetailMapper extends BaseMapperX selectPage(InventoryinitRecordDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventoryinitRecordDetailDO::getMasterId,reqVO.getMasterId()) .eqIfPresent(InventoryinitRecordDetailDO::getOwnerCode, reqVO.getOwnerCode()) .eqIfPresent(InventoryinitRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(InventoryinitRecordDetailDO::getContainerNumber, reqVO.getContainerNumber()) @@ -92,4 +93,10 @@ public interface InventoryinitRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(InventoryinitRecordDetailDO::getMasterId, masterId)); + } + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordMainMapper.java index b8f8ce37..1bbf264e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRecord/InventoryinitRecordMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainExportReqVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainPageReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -66,4 +67,8 @@ public interface InventoryinitRecordMainMapper 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/inventoryinitRecord/InventoryinitRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailService.java index ec30926e..53993e5c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordD import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordDetailDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; /** * 库存初始化记录子 Service 接口 @@ -79,4 +80,14 @@ public interface InventoryinitRecordDetailService { */ List getInventoryinitRecordDetailList(InventoryinitRecordDetailExportReqVO exportReqVO); + + + /** + * 根据主表id查询 + * + * @param masterId 主表id + * @return + */ + List selectList(Long masterId); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailServiceImpl.java index b88c6b93..76eb9ce5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordD import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordDetailExportReqVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordDetailPageReqVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,10 @@ public class InventoryinitRecordDetailServiceImpl implements InventoryinitRecord return inventoryinitRecordDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return inventoryinitRecordDetailMapper.selectList(masterId); + } + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainService.java index c00349b2..a5490b64 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordM import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRecord.InventoryinitRecordMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; /** * 库存初始化记录主 Service 接口 @@ -81,4 +82,13 @@ public interface InventoryinitRecordMainService { */ List getInventoryinitRecordMainList(InventoryinitRecordMainExportReqVO exportReqVO); + + /** + * 获得采购收货申请主列表, 用于 Excel 导出 + * + * @param conditions 查询条件 + * @return 采购收货申请主列表 + */ + List getInventoryinitRecordSeniorMainList(CustomConditions conditions); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainServiceImpl.java index ef18a424..f0263296 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRecord/InventoryinitRecordMainServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordM import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainExportReqVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainPageReqVO; import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,9 @@ public class InventoryinitRecordMainServiceImpl implements InventoryinitRecordMa return inventoryinitRecordMainMapper.selectList(exportReqVO); } + @Override + public List getInventoryinitRecordSeniorMainList(CustomConditions conditions) { + return inventoryinitRecordMainMapper.selectSeniorList(conditions); + } + }