diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java index cf251b29..e763301c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java @@ -41,30 +41,6 @@ public class IssueRecordDetailController { @Resource private AdminUserApi userApi; - @PostMapping("/create") - @Operation(summary = "创建发料记录子") - @PreAuthorize("@ss.hasPermission('wms:issue-record-detail:create')") - public CommonResult createIssueRecordDetail(@Valid @RequestBody IssueRecordDetailCreateReqVO createReqVO) { - return success(issueRecordDetailService.createIssueRecordDetail(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新发料记录子") - @PreAuthorize("@ss.hasPermission('wms:issue-record-detail:update')") - public CommonResult updateIssueRecordDetail(@Valid @RequestBody IssueRecordDetailUpdateReqVO updateReqVO) { - issueRecordDetailService.updateIssueRecordDetail(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除发料记录子") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:issue-record-detail:delete')") - public CommonResult deleteIssueRecordDetail(@RequestParam("id") Long id) { - issueRecordDetailService.deleteIssueRecordDetail(id); - return success(true); - } - @GetMapping("/get") @Operation(summary = "获得发料记录子") @Parameter(name = "id", description = "编号", required = true, example = "1024") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java index d3711b7e..af651a5b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java @@ -1,8 +1,12 @@ package com.win.module.wms.controller.issueRecord; 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.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.issueRecord.IssueRecordDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -36,36 +40,14 @@ import com.win.module.wms.service.issueRecord.IssueRecordMainService; @Validated public class IssueRecordMainController { + @Resource + private IssueRecordDetailService issueRecordDetailService; @Resource private IssueRecordMainService issueRecordMainService; @Resource private AdminUserApi userApi; - @PostMapping("/create") - @Operation(summary = "创建发料记录主") - @PreAuthorize("@ss.hasPermission('wms:issue-record-main:create')") - public CommonResult createIssueRecordMain(@Valid @RequestBody IssueRecordMainCreateReqVO createReqVO) { - return success(issueRecordMainService.createIssueRecordMain(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新发料记录主") - @PreAuthorize("@ss.hasPermission('wms:issue-record-main:update')") - public CommonResult updateIssueRecordMain(@Valid @RequestBody IssueRecordMainUpdateReqVO updateReqVO) { - issueRecordMainService.updateIssueRecordMain(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除发料记录主") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:issue-record-main:delete')") - public CommonResult deleteIssueRecordMain(@RequestParam("id") Long id) { - issueRecordMainService.deleteIssueRecordMain(id); - return success(true); - } - @GetMapping("/get") @Operation(summary = "获得发料记录主") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -105,21 +87,53 @@ public class IssueRecordMainController { } return success(result); } + + private List getExcelVo(List list, Map mapDropDown) { + String[] useOnTheWayLocation = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(21, useOnTheWayLocation); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(28, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(49, uom); + List resultList = new ArrayList<>(); + // 导出 + for(IssueRecordMainDO mainDO : list) { + List subList = issueRecordDetailService.selectList(mainDO.getId()); + for(IssueRecordDetailDO detailDO : subList) { + IssueRecordMainExcelVO vo = IssueRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + resultList.add(vo); + } + } + return resultList; + } + @GetMapping("/export-excel") - @Operation(summary = "导出发料记录主 Excel") + @Operation(summary = "导出发料记录 Excel") @PreAuthorize("@ss.hasPermission('wms:issue-record-main:export')") @OperateLog(type = EXPORT) public void exportIssueRecordMainExcel(@Valid IssueRecordMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = issueRecordMainService.getIssueRecordMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = IssueRecordMainConvert.INSTANCE.convertList02(list); - for(IssueRecordMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "发料记录主.xls", "数据", IssueRecordMainExcelVO.class, datas); + ExcelUtils.write(response, "发料记录.xlsx", "发料记录", IssueRecordMainExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出发料记录 Excel") + @PreAuthorize("@ss.hasPermission('wms:issue-record-main:export')") + @OperateLog(type = EXPORT) + public void exportIssueRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = issueRecordMainService.getIssueRecordMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "发料记录.xlsx", "发料记录", IssueRecordMainExcelVO.class, resultList, mapDropDown); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java index a64c2030..c10cc77d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.issueRecord.vo; +import com.win.module.wms.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -52,10 +53,6 @@ public class IssueRecordMainExcelVO { @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "接口类型", converter = DictConvert.class) - @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String interfaceType; - @ExcelProperty("单据号") private String number; @@ -71,14 +68,10 @@ public class IssueRecordMainExcelVO { @ExcelProperty("创建者Id") private String creator; - @ExcelProperty("代码") - private String code; - @ExcelProperty("从仓库代码") private String fromWarehouseCode; - @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty(value = "从库位类型范围") private String fromLocationTypes; @ExcelProperty("从库区代码范围") @@ -87,17 +80,99 @@ public class IssueRecordMainExcelVO { @ExcelProperty("到仓库代码") private String toWarehouseCode; - @ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty(value = "到库位类型范围") private String toLocationTypes; @ExcelProperty("到库区代码范围") private String toAreaCodes; - @ExcelProperty("使用在途库") + @ExcelProperty(value = "使用在途库", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String useOnTheWayLocation; @ExcelProperty("是否可用") private String available; + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者Id") + private String updater; + + @ExcelProperty("生产线代码") + private String productionLineCode; + + @ExcelProperty("工位代码") + private String workStationCode; + + @ExcelProperty("在途库库位") + private String onTheWayLocationCode; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("到货主代码") + private String toOwnerCode; + + @ExcelProperty("从包装号") + private String fromPackingNumber; + + @ExcelProperty("到包装号") + private String toPackingNumber; + + @ExcelProperty("从器具号") + private String fromContainerNumber; + + @ExcelProperty("到器具号") + private String toContainerNumber; + + @ExcelProperty("从批次") + private String fromBatch; + + @ExcelProperty("到批次") + private String toBatch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("到库位组代码") + private String toLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCode; + + @ExcelProperty("到库区代码") + private String toAreaCode; + + @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/issueRecord/IssueRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java index ac8003eb..169dcfeb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java @@ -8,7 +8,13 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainCreateReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExcelVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainRespVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; +import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExcelVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; @@ -34,4 +40,14 @@ public interface IssueRecordMainConvert { 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"), + }) + IssueRecordMainExcelVO convert(IssueRecordMainDO mainDO, IssueRecordDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java index 64c1eddc..cd84ee92 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java @@ -103,7 +103,7 @@ public class IssueRecordDetailDO extends BaseDO { /** * 主表ID */ - private String masterId; + private Long masterId; /** * 单据号 */ @@ -161,4 +161,9 @@ public class IssueRecordDetailDO extends BaseDO { */ private String jobDetailId; + /** + * 供应商代码 + */ + private String supplierCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java index e22985ca..c1cae864 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExportReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailPageReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -96,4 +97,9 @@ public interface IssueRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(IssueRecordDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java index 4f95c186..c4de4e34 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExportReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -82,4 +83,8 @@ public interface IssueRecordMainMapper extends BaseMapperX { .orderByDesc(IssueRecordMainDO::getId)); } + default List 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/issueRecord/IssueRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailService.java index 54fc99fc..3aed9dbc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailService.java @@ -80,4 +80,10 @@ public interface IssueRecordDetailService { */ List getIssueRecordDetailList(IssueRecordDetailExportReqVO exportReqVO); + /** + * 根据主表id查询 + * @param id + * @return + */ + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java index 849307f8..8bfb1264 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java @@ -87,4 +87,9 @@ public class IssueRecordDetailServiceImpl implements IssueRecordDetailService { return issueRecordDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return issueRecordDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java index a97abbef..e96651cd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; /** * 发料记录主 Service 接口 @@ -56,6 +57,14 @@ public interface IssueRecordMainService { */ List getIssueRecordMainList(Collection ids); + /** + * 获得发料记录主列表, 用于 Excel 导出 + * + * @param conditions 查询条件 + * @return 采购收货申请主列表 + */ + List getIssueRecordMainList(CustomConditions conditions); + /** * 获得发料记录主分页 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java index 6598559e..16d41500 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java @@ -74,6 +74,11 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService { return issueRecordMainMapper.selectBatchIds(ids); } + @Override + public List getIssueRecordMainList(CustomConditions conditions) { + return issueRecordMainMapper.selectSeniorList(conditions); + } + @Override public PageResult getIssueRecordMainPage(IssueRecordMainPageReqVO pageReqVO) { return issueRecordMainMapper.selectPage(pageReqVO);